In step 4 of test process ,fuction of line was not declared in this scope, it may attributed of loading my opencv lib,shoud l change some headfiles in MakeFiles? thank you very much!

xiezixi@lthpc:~/Codes-for-Lane-Detection-master/ENet-Label-Torch/tools/lane_evaluation$ make
CXX src/evaluate.cpp
src/evaluate.cpp: In function \u2018void visualize(std::cxx11::string&, std::vector<std::vector<cv::Point > >&, std::vector<std::vector<cv::Point > >&, std::vector, int)\u2019:
src/evaluate.cpp:271:59: error: \u2018line\u2019 was not declared in this scope
line(img, p_interp[n], p_interp[n+1], color, width_lane);
^
Makefile:36: recipe for target 'build/src/evaluate.o' failed
make: *** [build/src/evaluate.o] Error 1
xiezixi@lthpc:~/Codes-for-Lane-Detection-master/ENet-Label-Torch/tools/lane_evaluation$

Line() is a function of opencv. It seems that your opencv is not properly installed. Please check it. Besides, what is the version of your opencv? The current codes work well in opencv 2.4.x (>= 2.4.8).

@XieZixiUSTC,你好，在make后，我出现和你相同的问题，请问你是怎么解决的？我使用的是OpenCV3.4.1版本

@cardwing @BoSeal  my opencv version is 3.4.6, i solved this issue by add some libs in Makefile, as follows:LIBRARIES += opencv_core opencv_highgui opencv_imgproc  opencv_imgcodecs;INCLUDE := -I /usr/local/include/.Also add (#include <opencv2/opencv.hpp>) in ./src/evaluate.cpp and lane_compare.cpp. this method worked for me , i hope this comment can help you!

@XieZixiUSTC ，我按照你的解决方案，但是还是不行，出现了以下新问题：
(base) dcase@dcase-PowerEdge-R730:~/fhb/Codes-for-Lane-Detection-master/SCNN-Tensorflow/lane-detection-model/Pan-SCNN-master/SCNN-master/tools/lane_evaluation$ make
CXX/LD evaluate
/usr/bin/ld: build/src/lane_compare.o: undefined reference to symbol '_ZN2cv4lineERKNS_17_InputOutputArrayENS_6Point_IiEES4_RKNS_7Scalar_IdEEiii'
//usr/local/lib/libopencv_imgproc.so.3.4: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
Makefile:53: recipe for target 'evaluate' failed
make: *** [evaluate] Error 1

@XieZixiUSTC @cardwing ,请问使用opencv评估性能时，需要激活配置的tensorflow-gpu的conda环境么？作为新手，对这些不清楚，望能解答

不需要激活其他环境。测试代码在opencv 2.4.x (>= 2.4.8) 上可以跑通，所以建议你重新安装一下opencv。


Ubuntu 22,04: core dumped when translating

I have an updated system Ubuntu 22.04. and have compiled translateLocally as described on the project page. When I execute ./translateLocally -v I get:

translateLocally v0.0.2+a210037

But when I try to translate somethin by the CLI, e.g. echo "Me gustaria comprar la casa verde" | ./translateLocally -m es-en-tiny, I get:

Aborted (core dumped)

This happens also when I type the first charavter in the GUI.
What can I do to investigate the problem?

What's your output when you run cat /proc/cpuinfo?
I'm suspecting you're either running into a marian model loading bug, or your CPU not supporting the matrix operation implementations that are selected at runtime.

You can try to build it from scratch. You can then produce a .deb using cpack so you can still have your package nicely installed and managed.

I use a virtual root server (Root vServer).I attached the output of cat /proc/cpuinfo as file cpuinfo.txt
I installed the MKL by the command apt-get install intel-mkl
The output of dpkg-query -l | grep  intel-mkl is:

ii  intel-mkl:amd64                                             2020.4.304-2ubuntu3                     amd64        Intel® Math Kernel Library (Intel® MKL)

I attached the output of the command ls /usr/lib/x86_64-linux-gnu/libmkl_* as file libmkl-files.txt
And I attached the output of the command cmake .. as file cmake-output.txt
In that file there is the following line:

-- Could NOT find MKL (missing: MKL_LIBRARIES MKL_INCLUDE_DIRS MKL_INTERFACE_LIB RARY MKL_SEQUENTIAL_LAYER_LIBRARY MKL_CORE_LIBRARY)

but also the line

-- Found BLAS: /usr/lib/x86_64-linux-gnu/libmkl_intel_lp64.a;/usr/lib/x86_64-linux-gnu/libmkl_sequential.a;/usr/lib/x86_64-linux-gnu/libmkl_core.a;-lm;-ldl

What shoud I do?
cpuinfo.txt
libmkl-files.txt
cmake-output.txt

So you can compile with BLAS. (Refer to the readme, compiling with OpenBLAS works but it is slow).
The reason why the MKL libraries are not detected is that we link to the static libraries, not the shared ones.
After compiling by yourself, do you still get the core dump?

Resolved as per #156

The compilation was not successful.
First I installed some libraries:
apt-get install libblas-dev liblapack-dev libatlas3-base libatlas-base-dev
Then I executed cmake:
cmake .. -DBLAS_LIBRARIES=-lblas -DCBLAS_LIBRARIES=-lcblas
I get the following output:

-- Not Found Tcmalloc
CMake Warning at 3rd_party/bergamot-translator/3rd_party/marian-dev/CMakeLists.txt:608 (message):
Cannot find TCMalloc library.  Continuing.

I ignored that as a warning, executed the make and get the following output:

/home/testuser/TransLocal/translateLocally/src/inventory/ModelManager.cpp: In constructor ‘ModelManager::ModelManager(QObject*, Settings*)’:
/home/testuser/TransLocal/translateLocally/src/inventory/ModelManager.cpp:82:83: warning: ‘QDir& QDir::operator=(const QString&)’ is deprecated: Use QDir::setPath() instead [-Wdeprecated-declarations]
82 |     appDataDir_ = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation);
|                                                                                ^
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/QDir:1,
from /home/testuser/TransLocal/translateLocally/src/inventory/ModelManager.h:3,
from /home/testuser/TransLocal/translateLocally/src/inventory/ModelManager.cpp:1:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qdir.h:110:11: note: declared here
110 |     QDir &operator=(const QString &path);
|

A some lines lated maybe more important:

/usr/bin/ld: libmarian.a(VectorTransform.cpp.o): in function (anonymous namespace)::eig(unsigned long, double*, double*, int)': VectorTransform.cpp:(.text+0x1fc): undefined reference to dsyev_'
/usr/bin/ld: VectorTransform.cpp:(.text+0x26a): undefined reference to dsyev_' /usr/bin/ld: libmarian.a(VectorTransform.cpp.o): in function matrix_qr(int, int, float*)':
VectorTransform.cpp:(.text+0x25c1): undefined reference to sgeqrf_' /usr/bin/ld: VectorTransform.cpp:(.text+0x266a): undefined reference to sgeqrf_'
/usr/bin/ld: VectorTransform.cpp:(.text+0x2694): undefined reference to sorgqr_' /usr/bin/ld: libmarian.a(lsh.cpp.o): in function std::_Function_handler<void (IntrusivePtr<marian::Chainable<IntrusivePtrmarian::TensorBase > >, std::vector<IntrusivePtr<marian::Chainable<IntrusivePtrmarian::TensorBase > >, std::allocator<IntrusivePtr<marian::Chainable<IntrusivePtrmarian::TensorBase > > > > const&), marian::LSH::affine(IntrusivePtr<marian::Chainable<IntrusivePtrmarian::TensorBase > >, IntrusivePtr<marian::Chainable<IntrusivePtrmarian::TensorBase > >, IntrusivePtr<marian::Chainable<IntrusivePtrmarian::TensorBase > >, IntrusivePtr<marian::Chainable<IntrusivePtrmarian::TensorBase > >)::{lambda(IntrusivePtr<marian::Chainable<IntrusivePtrmarian::TensorBase > >, std::vector<IntrusivePtr<marian::Chainable<IntrusivePtrmarian::TensorBase > >, std::allocator<IntrusivePtr<marian::Chainable<IntrusivePtrmarian::TensorBase > > > > const&)#1}>::_M_invoke(std::_Any_data const&, IntrusivePtr<marian::Chainable<IntrusivePtrmarian::TensorBase > >&&, std::vector<IntrusivePtr<marian::Chainable<IntrusivePtrmarian::TensorBase > >, std::allocator<IntrusivePtr<marian::Chainable<IntrusivePtrmarian::TensorBase > > > > const&)':
lsh.cpp:(.text+0x33a4): undefined reference to cblas_sgemm(CBLAS_ORDER, CBLAS_TRANSPOSE, CBLAS_TRANSPOSE, int, int, int, float, float const*, int, float const*, int, float, float*, int)' /usr/bin/ld: lsh.cpp:(.text+0x343c): undefined reference to cblas_sgemm(CBLAS_ORDER, CBLAS_TRANSPOSE, CBLAS_TRANSPOSE, int, int, int, float, float const*, int, float const*, int, float, float*, int)'
/usr/bin/ld: libmarian.a(prod.cpp.o): in function marian::cpu::Prod(IntrusivePtr<marian::TensorBase>, IntrusivePtr<marian::TensorBase> const&, IntrusivePtr<marian::TensorBase> const&, bool, bool, float, float)': prod.cpp:(.text+0x14ef): undefined reference to cblas_sgemm(CBLAS_ORDER, CBLAS_TRANSPOSE, CBLAS_TRANSPOSE, int, int, int, float, float const*, int, float const*, int, float, float*, int)'
/usr/bin/ld: libmarian.a(prod.cpp.o): in function marian::cpu::ProdBatchedOld(IntrusivePtr<marian::TensorBase>, std::shared_ptr<marian::Allocator>, IntrusivePtr<marian::TensorBase>, IntrusivePtr<marian::TensorBase>, bool, bool, float, float)': prod.cpp:(.text+0x20bf): undefined reference to cblas_sgemm(CBLAS_ORDER, CBLAS_TRANSPOSE, CBLAS_TRANSPOSE, int, int, int, float, float const*, int, float const*, int, float, float*, int)'
/usr/bin/ld: prod.cpp:(.text+0x2162): undefined reference to `cblas_sgemm(CBLAS_ORDER, CBLAS_TRANSPOSE, CBLAS_TRANSPOSE, int, int, int, float, float const*, int, float const*, int, float, float*, int)'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/translateLocally-bin.dir/build.make:384: translateLocally] Error 1
make[1]: *** [CMakeFiles/Makefile2:476: CMakeFiles/translateLocally-bin.dir/all] Error 2
make: *** [Makefile:156: all] Error 2

What can I do?
BTW: I was successful to install translateLocally for Ubuntu 20.04 by using the package from the download page (https://translatelocally.com/downloads/) by installing the packages for qt5 in addition to the already available packages for qt6.

The packages libatlas3-base and libatlas-base-dev contain cblas as far as I understand.
The output of ls /usr/lib/x86_64-linux-gnu/libcblas.* is:

/usr/lib/x86_64-linux-gnu/libcblas.a
/usr/lib/x86_64-linux-gnu/libcblas.so
/usr/lib/x86_64-linux-gnu/libcblas.so.3
/usr/lib/x86_64-linux-gnu/libcblas.so.3.10.3

And the output of ar -t /usr/lib/x86_64-linux-gnu/libcblas.a | grep cblas_sgemm is:

cblas_sgemm.o

And the output of grep cblas_sgemm /usr/include/x86_64-linux-gnu/cblas-atlas.h is:

void cblas_sgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,

I also executed cmake .. -DBUILD_SHARED_LIBS=ON and then make -j4, but still get the following output when I try to translate:

Aborted (core dumped)

Interestingly the output of ldd translateLocally | grep -i mkl is nothing, i.e. the created binary seems not to contain a shared MKL library.

For your information: I tested the creating of the program by compilation after I installed the MKL similar as described on the project page in the section Install MKL for Ubuntu (Any) (but installed the new intel-mkl-core-2020.0-166 of type amd64 instead of intel-mkl-64bit-2020.0-088).
The execution of cmake and make run in the same way as after installation of the MKL package from Ubuntu (after apt-get install intel-mkl). And also the result was the same. When I try to translate something I get the following output:

Aborted (core dumped)

To all who read this ticket because they want to use translateLocally on Ubuntu 22.04: As I happened to see, there is already a build for Ubuntu 22.04. You can find it on the releases page https://github.com/XapaJIaMnu/translateLocally/releases when you unfold the section Assets.


[SPARK-21522][core] Fix flakiness in LauncherServerSuite.

Handle the case where the server closes the socket before the full message
has been written by the client.

Test build #79915 has started for PR 18727 at commit f53ebd4.

Test build #79916 has started for PR 18727 at commit 1fcbf53.

Test build #79915 has finished for PR 18727 at commit f53ebd4.

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

Merged build finished. Test PASSed.

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

Test build #79916 has finished for PR 18727 at commit 1fcbf53.

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

Merged build finished. Test PASSed.

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

retest this please

Test build #80083 has started for PR 18727 at commit 1fcbf53.

Test build #80083 has finished for PR 18727 at commit 1fcbf53.

This patch fails PySpark unit tests.
This patch merges cleanly.
This patch adds no public classes.

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

Merged build finished. Test FAILed.

retest this please

Test build #80092 has started for PR 18727 at commit 1fcbf53.

Test build #80092 has finished for PR 18727 at commit 1fcbf53.

This patch fails PySpark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

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

retest this please

Test build #80102 has started for PR 18727 at commit 1fcbf53.

Test build #80102 has finished for PR 18727 at commit 1fcbf53.

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

Merged build finished. Test PASSed.

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

Merging to master / 2.2 / 2.1 / 2.0.


Explicitly disable BTP Operator for upgrade queue

Description
For update and provisioning, we explicitly disable BTP operator and only enable it when appropriate creds are present. For upgrade, we relied on different logic and that is inheriting InputCreator from previous operations which may not be as robust as we thought. This is an effort to unify components enablement/disablement related to SVCAT migration.
Related issue(s)

mitigation of https://github.com/kyma-project/control-plane/issues/1286

/test all

/hold

/retest

/retest

/retest

/retest

/unhold


caching functions taking a JIT class

In [71]: import numba as nb
In [72]: nb.__version__
Out[72]: '0.23.1'

In [73]: @nb.jitclass([
    ...: ('value', nb.float64[:])
    ...: ])
    ...: class Container(object):
    ...:     def __init__(self, value):
    ...:         self.value = value

In [74]: @nb.jit(nopython=True)
    ...: def fun(a, container):
    ...:     return a + container.value[0]

In [75]: c = Container(np.array([1,2.4,3]))

In [77]: fun(1, c)
Out[77]: 2.0

In [78]: @nb.jit(nopython=True, cache=True)
    ...: def fun(a, container):
    ...:     return a + container.value[0]

In [79]: fun(1, c)
---------------------------------------------------------------------------
PicklingError                             Traceback (most recent call last)
<ipython-input-79-53b1add910cd> in <module>()
----> 1 fun(1, c)

C:\Users\Chris\Anaconda\lib\site-packages\numba\dispatcher.pyc in _compile_for_args(self, *args, **kws)
    169         assert not kws
    170         sig = tuple([self.typeof_pyval(a) for a in args])
--> 171         return self.compile(sig)
    172
    173     def inspect_llvm(self, signature=None):

C:\Users\Chris\Anaconda\lib\site-packages\numba\dispatcher.pyc in compile(self, sig)
    354
    355             self.add_overload(cres)
--> 356             self._cache.save_overload(sig, cres)
    357             return cres.entry_point
    358

C:\Users\Chris\Anaconda\lib\site-packages\numba\dispatcher.pyc in save_overload(self, sig, cres)
    664                     break
    665             overloads[key] = data_name
--> 666             self._save_index(overloads)
    667
    668         self._save_data(data_name, cres)

C:\Users\Chris\Anaconda\lib\site-packages\numba\dispatcher.pyc in _save_index(self, overloads)
    753     def _save_index(self, overloads):
    754         data = self._source_stamp, overloads
--> 755         data = self._dump(data)
    756         with self._open_for_write(self._index_path) as f:
    757             pickle.dump(self._version, f, protocol=-1)

C:\Users\Chris\Anaconda\lib\site-packages\numba\dispatcher.pyc in _dump(self, obj)
    765
    766     def _dump(self, obj):
--> 767         return pickle.dumps(obj, protocol=-1)

PicklingError: Can't pickle <type 'function'>: attribute lookup __builtin__.function failed

Similar issue here (Numba 0.24.0) with
from numba import jitclass, njit, intc

@jitclass([('value', intc)])
class Class:
    def __init__(self):
        self.value = 0

@njit(cache=True)
def do_nothing(instance):
    return

do_nothing(Class())

resulting in the following traceback:
Traceback (most recent call last):
  File "lib/python3.4/site-packages/numba/dispatcher.py", line 761, in save_overload
    data_name = overloads[key]
KeyError: ((instance.jitclass.Class#2799db8<value:int32>,), ('x86_64-unknown-linux-gnu', ...))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "numba_bug_jitclass_cache.py", line 12, in <module>
    do_nothing(Class())
  File "lib/python3.4/site-packages/numba/dispatcher.py", line 273, in _compile_for_args
    return self.compile(tuple(real_args))
  File "lib/python3.4/site-packages/numba/dispatcher.py", line 460, in compile
    self._cache.save_overload(sig, cres)
  File "lib/python3.4/site-packages/numba/dispatcher.py", line 770, in save_overload
    self._save_index(overloads)
  File "lib/python3.4/site-packages/numba/dispatcher.py", line 859, in _save_index
    data = self._dump(data
  File "lib/python3.4/site-packages/numba/dispatcher.py", line 871, in _dump
    return pickle.dumps(obj, protocol=-1)
_pickle.PicklingError: Can't pickle <class '__main__.Class'>: it's not the same object as __main__.Class

or randomly / alternatively the same traceback but while pickling numba.types.ContructorTemplate:
Traceback (most recent call last):
  File "lib/python3.4/site-packages/numba/dispatcher.py", line 761, in save_overload
    data_name = overloads[key]
KeyError: ((instance.jitclass.Class#2bcb9f8<value:int32>,), ('x86_64-unknown-linux-gnu', ...))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "numba_bug_jitclass_cache.py", line 12, in <module>
    do_nothing(Class())
  File "lib/python3.4/site-packages/numba/dispatcher.py", line 273, in _compile_for_args
    return self.compile(tuple(real_args))
  File "lib/python3.4/site-packages/numba/dispatcher.py", line 460, in compile
    self._cache.save_overload(sig, cres)
  File "lib/python3.4/site-packages/numba/dispatcher.py", line 770, in save_overload
    self._save_index(overloads)
  File "lib/python3.4/site-packages/numba/dispatcher.py", line 859, in _save_index
    data = self._dump(data
  File "lib/python3.4/site-packages/numba/dispatcher.py", line 871, in _dump
    return pickle.dumps(obj, protocol=-1)
_pickle.PicklingError: Can't pickle <class 'numba.types.ConstructorTemplate'>: attribute lookup ConstructorTemplate on numba.types failed

Moreover pickling of jitclass instances is not supported, which I guess is currently expected behavior.
from multiprocessing import Pool
from numba import jitclass, njit, intc

@jitclass([('value', intc)])
class Class:
    def __init__(self):
        self.value = 0

@njit
def do_nothing(instance):
    return

with Pool(1) as pool:
    pool.apply(do_nothing, (Class(),))

fails with:
Traceback (most recent call last):
  File "numba_bug_jitclass_pickle.py", line 14, in <module>
    pool.apply(do_nothing, Class())
  File "lib/python3.4/multiprocessing/pool.py", line 253, in apply
    return self.apply_async(func, args, kwds).get()
  File "lib/python3.4/multiprocessing/pool.py", line 608, in get
    raise self._value
  File "lib/python3.4/multiprocessing/pool.py", line 385, in _handle_tasks
    put(task)
  File "lib/python3.4/multiprocessing/connection.py", line 206, in send
    self._send_bytes(ForkingPickler.dumps(obj))
  File "lib/python3.4/multiprocessing/reduction.py", line 50, in dumps
    cls(buf, protocol).dump(obj)
_pickle.PicklingError: Can't pickle <class 'numba.jitclass.boxing.Class'>: attribute lookup Class on numba.jitclass.boxing failed

Hello,
firstly, thank you for Numba, its great project! :)
secondly i want to ask, whether is there some progress with "TypeError: can't pickle JitClass objects"? I try to use JitClass with multiprocessing.pool.
Thank you for your reply

Note that if this pickling did work, then the cached bytecode would be invalid across interpreter restarts, as it contains a hard-coded memory address of where the object used to live.


Migration For old Datasource

When we open data source configuration for the existing Gsheet DS, I should be able to see the “Whole drive Access” option preselected, so that existing Gsheet data sources continue work as before.

I am blocked on this as of now. Need some clarity to proceed. Waiting on @sumitsum @rohan-arthur


How to change the height of selectedBa.

Hi, I can change the selectedBar color by [self.buttonBarView.selectedBar setBackgroundColor:[UIColor redColor]],  but is there a way to change the height of selectedBar?
Thanks a lot.

I would like to change the height as well.
Seems like it's hardcoded in XLButtonBarView to 5.
-(UIView *)selectedBar
{
    if (_selectedBar) return _selectedBar;
    _selectedBar = [[UIView alloc] initWithFrame:CGRectMake(0, self.frame.size.height - 5, self.frame.size.width, 5)];
    _selectedBar.layer.zPosition = 9999;
    _selectedBar.backgroundColor = [UIColor blackColor];
    return _selectedBar;
}

Thanks, Alex

It doesn't work, any idea why ?


Can't async call winapi GetMessage

user32.GetMessageW.async(MSGs.ref(), 0, 0, 0, (err, res) => {
	...
});

Has no effect. Any idea what i do wrong?

How did you fix this?


S3 storage class

Hi, thanks for this great project.
It would be cool if it was possible to change the S3 storage class. For caches, OneZoneIA is enough and probably cheaper than Standard.

Hey @smessmer, we're now supporting different storage classes in the latest release. :)

Thank you :)


Use methods on manual instead of repository in attachment services

This PR removes the dependency on a ManualRepository from the SectionAttachment services (in a similar fashion to #941 and #944.
I've also added a couple of commits to remove the builder argument from NewSectionAttachmentService.
Note - there are no unit tests for the controller or services modified in this PR. The functionality is covered by a feature spec (in features/attachments.feature) that didn't require changing as part of this refactor. I'm reasonably confident that those feature tests show that the behaviour hasn't changed as part of this refactor, and I don't plan to add the missing unit tests at this stage.

@floehopper thank you! I've addressed the comment about tests in the PR note.


Arduino integration

This library looks awesome! I'm trying to call it inside my Arduino sketch, but I get this error. Sorry for the dumb question, but I'm just starting out:
#include "SparkFunLSM6DS3.h"
#include "Wire.h"
#include "SPI.h"
#include "six_axis_comp_filter.h"

LSM6DS3 myIMU; // Constructor for the motion sensor (this works)
CompSixAxis test; // this breaks

when I try to initialise an instance of the class it gives me this error:
no matching function for call to 'CompSixAxis::CompSixAxis()'

This fixed my issue: http://stackoverflow.com/questions/36579735/initialising-a-c-library-in-arduino/36579831?noredirect=1#comment60759487_36579831

Hi savovs,
Glad you were able to get it going. I originally came up with this library
for use with my auto-balancing robot I built back in 2014. It worked a
beauty with the gyroscope and accelerometer module I was using, but was a
pain in the rear to figure out the math and theory behind how a
complementary filter works in practice. So, I decided to go ahead and share
it on Github. Maybe save some other people in the world some time with it.
Thanks!
On Tue, Apr 12, 2016 at 11:16 AM, savovs<EMAIL_ADDRESS>wrote:

This library looks awesome! I'm trying to call it inside my Arduino
sketch, but I get this error. Sorry for the dumb question, but I'm just
starting out:
#include "SparkFunLSM6DS3.h"
#include "Wire.h"
#include "SPI.h"
#include "six_axis_comp_filter.h"
LSM6DS3 myIMU; // Constructor for the motion sensor (this works)
CompSixAxis test; // this breaks
when I try to initialise an instance of the class it gives me this error:
no matching function for call to 'CompSixAxis::CompSixAxis()'
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/tcleg/Six_Axis_Complementary_Filter/issues/1

--
-Trent Cleghorn

It works like a charm! Good job man. I'm using it to control an audio synthesiser, I'll probably make a video about how to get it going some time soon. You have made my life 10 times easier with this library.
I had to make a couple of variables public because I couldn't figure out how to use the compAngle values in my code, but that's probably because I'm a noob.
Hope you're doing well!
Vlady

Sweet!
On Tue, Apr 12, 2016 at 8:03 PM, savovs<EMAIL_ADDRESS>wrote:

It works like a charm! Good job man. I'm using it to control an audio
synthesiser, I'll probably make a video about how to get it going some time
soon. You have made my life 10 times easier with this library.
I had to make a couple of variables public because I couldn't figure out
how to use the compAngle values in my code, but that's probably because I'm
a noob.
Hope you're doing well!
Vlady
—
You are receiving this because you commented.
Reply to this email directly or view it on GitHub
https://github.com/tcleg/Six_Axis_Complementary_Filter/issues/1#issuecomment-209171112

--
-Trent Cleghorn


Adobe Extract needs internet!

This is a great tool, but i have to be all the time online? cant we use it offline? (asks for an Adobe ID)

The proper approach to this is "we're looking at online use cases."
The only reason to put the extraction app online is so that you can update it rapidly during preview development or guard proprietary parser code. If this goes to Release without a local parser, it would eliminate most use cases for this software in commercial applications.
No marketing department or creative services organization is going to want to upload unreleased, unfinished collateral for a third party's reading pleasure.

@eraustud See above: "We’re looking at the offline use cases" is exactly the statement that was given.
The Creative Cloud privacy agreement is pretty strict, so files you upload are certainly not "for a third party's reading pleasure" -- see Section 3, in particular: "We will not access, view, or listen to any of your content, except as reasonably necessary to perform the Services."   Lots of creative professionals use online services, including Creative Cloud, Dropbox, etc. that are entrusted with their private content.  I get that not everyone in the world is comfortable with that yet, but certainly plenty of teams are.

Thank you for replying. You may want to read the post once again, more
carefully.
I suggested that Ryan's statement should have read "online use cases"
because the statement does read "offline use cases" and reflects a
backward thought process. The default parsing mode should be offline so
that the application can be used in a secure environment and during
travel, not online so that it can be DRM-locked as Adobe is wont to do.
Requiring file upload to a remote parser violates security and KISS
principles in addition to reducing application reliability and
performance (it's not going to be faster to upload a multi-MB file,
remote-parse and return results unless the client computer is so old
that it can't even run Brackets).
Remote parsing during Preview makes perfect sense if the parser itself
is being actively developed, as it allows application updates to be
immediately effective for the entire user base. However, the stable,
final Release version would be better served by having the parser run
locally.
Last, given that Adobe had over 150M customer account records leaked
less than 18 months ago, their entire attitude toward security as a
business is untrustworthy, regardless of any privacy agreements. A
company of Adobe's size that prioritizes information integrity and
account security would have systems and people in place that notice and
stop an attack in a shorter time frame than is required to pull
150,000,000 records from even a high-speed database.
On 3/4/2015 5:06 PM, Peter Flynn wrote:

@eraustud https://github.com/eraustud See above: "We’re looking at
the offline use cases" is exactly the statement that was given.
The Creative Cloud privacy agreement is pretty strict, so files you
upload are certainly /not/ "for a third party's reading pleasure" --
see Section 3 http://www.adobe.com/legal/general-terms.html, in
particular: "We will not access, view, or listen to any of your
content, except as reasonably necessary to perform the Services." Lots
of creative professionals use online services, including Creative
Cloud, Dropbox, etc. that are entrusted with their private content. I
get that not everyone in the world is comfortable with that yet, but
certainly plenty of teams are.
—
Reply to this email directly or view it on GitHub
https://github.com/adobe/brackets/issues/9793#issuecomment-77260296.

Same for me. Right now I am working behind the proxy which is controlling by hardware firewall. Therefore, the Brackets does not connect to Adobe Cloud service. Brackets always throw an error message like:
 [node-error 8:30:08 AM] /ims/check/v1/token?client_id=bracketsextract1&scope=AdobeID%2Copenid%2Ccreative_cloud%2Ccreative_sdk&locale=en-US&redirect_uri=brackets-auth%3A%2F%2Fredirectims.html%23from_ims%3Dtrue%26old_hash%3D%26api%3Dcheck%252Ftoken&callback=jQuery213016175519302487373_1426832986543&e4b-target-domain=https%3A%2F%2Fadobeid-na1.services.adobe.com&_=1426832986544 - Error from EventEmitter3.emit(): Error: connect ETIMEDOUTErrorNotification.js:125 window.console.errormain.js:418 console.errorNodeDebugUtils.js:114 handleLogEvent/utils/EventDispatcher.js:222 trigger/utils/EventDispatcher.js:260 triggerWithArray/utils/NodeConnection.js:479 NodeConnection._receive
ErrorNotification.js:125 A network error has occurred. Are you connected to the internet?

@jasonsanjose Any thoughts on how to resolve these firewall issues?

You might check with @dangoor since he's familiar with the proxy handling that was implemented for the extension registry.

If I recall correctly, the proxy value can be passed in when making requests in Node and that's all we did with that proxy flag.

Also in some countries like mine i see this :

403 Forbidden
Request forbidden by administrative rules.

its better to use local offline method . it's not reasonable to upload about 200MB files on the cloud to use this system btw.

Totally agree. Extract was one of the main reasons I installed Brackets (to improve my workflow performance) and then I was massively disappointed to see I need to sign in and upload my PSD files. I will install Brackets again when/if the feature is included as online. Hopefully soon!

+1

But we’re interested in hearing how an offline use case would be helpful

Offline is not just helpful but essential as far as my firm is concerned. I tried the tool out today with the demo PSD, and it is neat, but there is no way in heck I would ever consider uploading proprietary client artwork to the cloud. No matter what Adobe's Privacy-Agreement-of-the-minute says.
I get that Extract is beta and having it online assists in development, but I can't actually use it for real-world projects under an online use paradigm.
I find Adobe's push to get creatives to upload production files to CreativeCloud disturbing. Finished portfolio pieces that you wanna get #social with? Maybe. Client production artwork? No way!

We announced last week that we're going to be discontinuing support for Extract for Brackets on June 28th. And there aren't an plans to support an offline version in Brackets. The Dreamweaver team (who is currently working on integrating Brackets as their code surface) may be looking into offline support but I'm not sure where it is on their roadmap.
Because of the announcement I'm going to go ahead and close this issue. But if you have any questions, feel free to email me<EMAIL_ADDRESS>or post them here and I'll try to follow up.


Add support for objects .includes

const arr = [{ a: 1 }] as const;

let member = { a: 1 }  // type is { a: number }
arr.includes(member)   // ERROR: Not assignable
arr.includes({ a: 1 }) // This is fine

This might be non-trivial, but given what the new typing for .includes tries to achieve, I was surprised this wasn't working. It is easy to understand why it doesn't, given how it is implemented, but it would be great if that could be supported. We would need to extend the WidenLiteral to the object values if that is possible — probably something recursive.

This example is relatively abstract - do you have a practical case in mind?

const VALID = { state: "valid" } as const;
const WAITING = { state: "waiting" } as const;
const FAILED = { state: "failed" } as const;

type State = typeof VALID | typeof WAITING | typeof FAILED

const stateIsNotFailed = (state: State) => [VALID, WAITING].includes(state);

This occurs in cases where you want an abstract example against a list where the object keys have specific values. This can happen when you want to use objects as constants where you only do reference comparisons (you need the exact object, not just one that looks like it). There are different ways how you could type State something like that, but .includes would fail no matter how it is implemented.

const VALID = { state: "valid" } as const;
const WAITING = { state: "waiting" } as const;
const FAILED = { state: "failed" } as const;

type State = typeof VALID | typeof WAITING | typeof FAILED

const stateIsNotFailed = (state: State) => [VALID, WAITING].includes(state);

This occurs in cases where you want an abstract example against a list where the object keys have specific values. This can happen when you want to use objects as constants where you only do reference comparisons (you need the exact object, not just one that looks like it). There are different ways how you could type State something like that, but .includes would fail no matter how it is implemented.

I know that this is out of scope  but what is the benefit of such implementation instead of this one?
type State = {
	state: "valid" | "waiting" | "failed"
}

const VALID: State = { state: "valid" };
const WAITING: State = { state: "waiting" };
const FAILED: State = { state: "failed" };

const stateIsNotFailed = (state: State) => [VALID, WAITING].includes(state);

This gets rid of the problem, but by making VALID, WAITING, and FAILEDless specific. If you want a function to only takeVALIDorWAITING` you can't anymore.


test: fix permissions of PackageBundler test inputs

This should fix JuliaHub.jl in PkgEval, where it's currently failing because it gets Pkg.added: https://s3.amazonaws.com/julialang-reports/nanosoldier/pkgeval/by_date/2023-07/04/JuliaHub.primary.log

Codecov Report

Merging #11 (8ee8283) into main (ce0a802) will decrease coverage by 36.11%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##             main      #11       +/-   ##
===========================================
- Coverage   76.68%   40.57%   -36.11%
===========================================
  Files          16       16
  Lines        2187     2159       -28
===========================================
- Hits         1677      876      -801
- Misses        510     1283      +773

see 14 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Fix llama tokenizer issue with tokenizer-based control of bos prepending

Description
This PR changes the mechanism of prepend_bos to dynamically switch between two tokenizers (one that prepends bos and one that does not prepend bos) following the philosophy of huggingface tokenizers that "once a tokenizer is saved, we should not change it again, but rather re-convert it" described in https://github.com/huggingface/transformers/issues/25886#issuecomment-1701013725.
Previously, if we wanted to prepend a bos token to the input, we manually added it to the input, e.g., self.tokenizer.bos_token + input. However, this resulted in a bug for LLaMA tokenizers because they behave differently when the bos token is manually prepended and it is automatically prepended by the tokenizer. (https://github.com/neelnanda-io/TransformerLens/issues/373#issuecomment-1701017935)
While the interface for the user remains the same, this PR changes the internal mechanism of prepending bos to holding two tokenizers in self.tokenizer_dict, one that prepends bos to the input and one that does not prepend bos. The user can just provide the model one tokenizer; the code detects whether the given tokenizer uses bos by default and then creates the counterpart. Which tokenizer to use is controlled by the value set in model.cfg.default_prepend_bos. If model.cfg.default_prepend_bos=True, self.tokenizer forwards to self.tokenizer_dict[True] which prepends pos. Local overriding by calling string preprocessing methods like to_tokens(text, prepend_bos=False) is also supported. The code also handles the local/global changes in padding_side so that padding_side of the two tokenizers remains synced even if the user changes it.
One caveat in the current state of PR is that I monkey-patched the tokenizer when the tokenizer does not originally use a bos token and we need to add it manually. I did this in order to use the same interface for the two tokenizers, but I am aware that this approach is potentially dangerous. I just couldn't think of a better way by myself. I am open to better solutions/suggestions.
I checked that things work as expected with test_tokenizer_dict.py. I didn't add models like llama-7b or gpt-j-6b to the tests because the models are too large, but I've manually run the test code using those models as well and checked that there's no issue.
Fixes https://github.com/neelnanda-io/TransformerLens/issues/373#issuecomment-1701017935
Type of change
Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)

Checklist:

[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] I have not rewritten tests relating to key interfaces which would affect backward compatibility

I just realised that we can maybe do it by holding only one tokenizer that prepends bos by default (automatically or manually) and cut the first token off when prepend_bos=False. I think this PR might be overengineering haha. I'll test if that approach works, and if it does, I'll close this one and make that into a new PR.


[CI] Release action hangs on test runner

See for reference:
https://github.com/storybookjs/test-runner/issues/301
It happened two times in run: https://github.com/melfore/konva-timeline/actions/runs/6120371656
Suggested solution is to workaround changing tcp param as follows: npx wait-on tcp:<IP_ADDRESS>:6006 && yarn test-storybook

:tada: This issue has been resolved in version 1.3.2 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Document/ivyportal 16878 new statistics documentation & g UI test

Update user guide
Update dev guide

Thank for your review @phochstr . I have updated both user and developer guide. In user guide, I added images for each chart and changed the name following the standard.


Roll Flutter Engine from 88501782bdf6 to eb4eb48bed55 (2 revisions)

https://github.com/flutter/engine/compare/88501782bdf6...eb4eb48bed55
2023-04-10<EMAIL_ADDRESS>Roll Skia from d0e0b423e3c0 to 7eebce479ff8 (12 revisions) (flutter/engine#41053)
2023-04-10<EMAIL_ADDRESS>Roll Fuchsia Mac SDK from fYBjzwm0fO7kzBMly... to Qjww4yAoe7dXlsRYB... (flutter/engine#41051)
Also rolling transitive DEPS:
fuchsia/sdk/core/mac-amd64 from fYBjzwm0fO7k to Qjww4yAoe7dX
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC jonahwilliams@google.com,rmistry<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


Add an explicit advice section.

If we don't give advice, people are going to make up their own stuff, or get it from somewhere else. The following is a strawman based on existing best practices that I've seen:
High-traffic, established site:

Start with max-age=3600; includeSubDomains (1 hour).
Ramp up the max-age: 86400 (1 day), 604800 (1 week), 2592000 (1 month).
Run each ramp-up stage for at least as long as the length of the max-age for that stage (e.g. spend at least one month sending 2592000 ).
If you have a group of dogfood users/beta testers (e.g. people inside your organization who), try the first few stages on just that subset of users. Then make sure to go through all stages for all users, starting over from 3600 (1 hour).
If the last stage is working without problems, increase to 31536000 (1 year) and preload once you're comfortable.

New site or site where consequences of breakage are not extreme:
Try the 604800 (1 week) step until you're comfortable there is no significant breakage, then go ahead and increase to 31536000 (1 year) and preload.
TODO/Ideas

Recommend looking at CSP (reporting HTTP resources?) and upgrade-insecure-requests?

I think it's worth recommending 1 year because this is good protection without being gratuitously long. Easy to remember, easy to tell someone, and feels natural. It is also on the order of magnitude as a domain registration cycle.
(And if you visit a site less than once per year, the benefit from trying to protect recurrent visits is more questionable. But maybe this should be 2 years for yearly events that can shift seasons?)
In practice, it seems there is little benefit from sending 18 weeks instead of 1 year, since

to undo a dynamic HSTS rollout, you'll have to switch to max-age=0 either way, and
if you preload and change your mind, the max-age doesn't affect your ability to recover very quickly.

That is, if you shoot yourself in the foot, 18 weeks is not shooting yourself significantly less in the foot than 1 year.
@marumari @agl @estark37 @ScottHelme Thoughts?

I think that having a Deployment Strategy section is a great idea.  One thing to consider is instead of adding it to the hstspreload site, we instead update the Mozilla Web Security guidelines to include this information and point people there.
For busy sites, I usually start with 300 -> 3600 -> 259200 (being three days, but a week is also fine) and then move right up to a year.  3600 is usually too long if it breaks something, hence the initial 300 recommendation.
Plain HSTS (sans preload and sans includeSubDomain) is pretty resilient against people making horrible mistakes, and I've rarely seen them in practice, since you have to have HTTPS working in the first place to get HSTS.
Reporting is a complete nightmare; most sites will generally find out pretty quickly if something has gone awry through other means, such as monitoring their traffic load or getting bucketloads of customer complaints.
I do really like upgrade-insecure-requests and I hope to work it into the web security guidelines as a general recommendation soon, if I can figure out a good way to do so cleanly.
As a general aside, I've thought a lot about the recommended max-age.  The initial Mozilla recommendations were a year for the reasons you listed, and because it was the most common value seen in the wild.  But I do think that something like 13-14 months is probably a better number in general because there are many things that I do on an annual basis, but often I will do them a little over a year apart.
Good example of this kind of activity would include filing my taxes; maybe done on February 20th one year, and March 15th the next year. I think most people would agree that keeping HSTS in this context is the proper thing to do.

One thing to consider is instead of adding it to the hstspreload site, we instead update the Mozilla Web Security guidelines to include this information and point people there.

I strongly think we should put something on the page itself, but I'd love to link to Mozilla guidelines. Especially if those guidelines had concrete code snippets for Apache/nginx that satisfy the preload requirements.

For busy sites, I usually start with 300 -> 3600 -> 259200 (being three days, but a week is also fine) and then move right up to a year. 3600 is usually too long if it breaks something, hence the initial 300 recommendation.

Hmm, the more I think about it, the more I want to combine the two cases and reduce steps (I expect sites to adjust the advice based on how conservative they are, anyhow).
300 sounds reasonable, but I also really want to include something like a month. I get the feeling people run into problems if they implement it in a one-week sprint and then put it out of their mind. One month is also the longest natural length to catch recurring problems below 18 weeks/1 year (e.g. a site for monthly rent/lease payments).

Good example of this kind of activity would include filing my taxes; maybe done on February 20th one year, and March 15th the next year. I think most people would agree that keeping HSTS in this context is the proper thing to do.

Matches my thoughts exactly. How common is 2 years? Could you post the distribution here?

Reporting is a complete nightmare; most sites will generally find out pretty quickly if something has gone awry through other means, such as monitoring their traffic load or getting bucketloads of customer complaints.

Sounds fair. We can always add it later.

Plain HSTS (sans preload and sans includeSubDomain)

Since this is hstspreload advice and preloading includes subdomains, I'd rather have "include subdomains" be the default right answer and have sites test with it from the start.
Keeps it simple, and probably matches what people want if their goal is to preload (which is hopefully why they're on hstspreload.appspot.com).
How's this?

Start with max-age=300; includeSubdomains (5 minutes).
Ramp up the max-age: 604800 (1 week), 2592000 (1 month).
Run each ramp-up stage for at least as long as the length of the max-age for that stage (e.g. spend at least one month sending 2592000 ).
If the last stage is working without problems, increase to 31536000 (1 year) and preload once you're comfortable.

Extra advice:

If you have a group of dogfood users/beta testers, try the first few stages on just that subset of users. Then make sure to go through all stages for all users, starting over from 300 (5 minutes).
Look at the Mozilla guidelines for more concrete details and related mechanisms. In particular, consider trying upgrade-insecure-requests.

I'll respond to the rest as soon as I can, but I need to get some 💤.

Matches my thoughts exactly. How common is 2 years? Could you post the distribution here?

https://gist.github.com/marumari/eb756a7899becce19f619910f019039e (Alexa 1M, as of last April)
https://gist.github.com/marumari/0d88fce62fa8a860d14b4a33dcf74a17 (As above, but only sites that had set preload, although not necessarily were preloaded)

Counts above 50 from your list (where preload was set):
63072000     |   893
31536000     |   862
15552000     |   505
0            |   209
15768000     |   119
10886400     |    86
2592000      |    83

Counts above 50 from a scan of preloaded sites I did in May:
{
 {31556926, 68},
 {315360000, 71},
 {16070400, 91},
 {10886400, 313},
 {15768000, 762},
 {15552000, 1295},
 {31536000, 3189},
 {63072000, 3821}
}

There were 12600 entries, and the counts above include all 10191 sites that send a header (regardless of whether they send the preload directive).
Sounds like 63072000 (2 years) is more popular than 1 year, or at least a very defensible choice. I'd say we should go with that.

I'm completely in accordance with making the recommendation two years, unless anybody has any objections.
Of course, there's not really much difference between max-age=63072000 and max-age=heat-death-of-the-universe, but I just checked the specification and it seems that nobody made that a keyword.  😭

I agree with the max-age being 2 years. Once we get up above a month or two then I don't think it really matters. Also, it may be beneficial to have such a large number to give people a reason to pause and think about it a bit more.
I also prefer the single timeline for deployment rather than trying to split it. All sites should ease in and monitor as they go regardless of size.
👍

Didn't read the whole thread yet (still on vacation) but ISTR that chrome
(and maybe FF too?) enforces max max-age of 1 year, so not sure if a
recommendation of 2 years makes sense.
On Friday, September 9, 2016, Lucas Garron<EMAIL_ADDRESS>wrote:

Closed #62 https://github.com/chromium/hstspreload.appspot.com/issues/62
via e4f52fa
https://github.com/chromium/hstspreload.appspot.com/commit/e4f52fadf00f9ae36dc4605a0976dbe022f53ca9
.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/chromium/hstspreload.appspot.com/issues/62#event-784487745,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAkxj3wEKcDqmercj-8ctimg-nScqQMOks5qob_UgaJpZM4J4mhe
.

Firefox enforces a max max-age (delightfully named mMaxMaxAge) for HPKP (60 days), but has no upper limit for HSTS.

ISTR that chrome
(and maybe FF too?) enforces max max-age of 1 year

Hmm, that sounds vaguely familiar. I guess I should find out where and why.


cranelift: Merge abi and abi_impl modules

Ah yeah sorry about that! I did notice that for some reason it didn't preserve the git mv, not sure why!

That's not your fault—that's because there's no actual state in a git history representing a "move". :laughing: It's all heuristically reconstructed by git diff etc after the fact.


importAzureSentinelRules.ps1 script not importing the "Description" field value

Describe the bug
When I used the importAzureSentinelRules.ps1 script to import the analytic rules to Sentinel, it did not import the "Description" field value although it was correctly exported and present in the Scheduled.json file.
To Reproduce
Steps to reproduce the behavior:

Export the analytic rules (which have Description field populated) with exportAzureSentinelRules.ps1 script
Import the exported analytic rules with importAzureSentinelRules.ps1 script
See if the Description was imported or not

Expected behavior
I would like to the importAzureSentinelRules.ps1 script to import the analytic "Description" value.
@tianderturpijn or anyone from the Sentinel team, could you please try to replicate this and see if you are having the same issue?
Thanks, Ludek

@sukster  Thanks Ludek, going to look into it.

Resolved


Bug: Error message for matches rule doesn't support nested params

Describe the bug
When using the Validation library, specifically the matches rule for passwords, it's not clear and not mentioned in the documentation how to implement it. I tried the following:
public $registro = [
    'registro.password' => [
        'rules' => 'required|min_length[6]',
        'errors' => [
            'required' => 'La contraseña es un campo obligatorio.',
            'min_length' => 'La contraseña debe ser de al menos 6 caracteres.'
        ]
    ],
    'registro.verificar_password' => [
        'rules' => 'required|matches[registro.password]|min_length[6]',
        'errors' => [
            'required' => 'Verificar contraseña es un campo obligatorio.',
            'matches[registro.password]' => 'Las contraseñas no coinciden, por favor revisa.',
            'min_length' => 'Verificar contraseña es un campo que debe ser de al menos 6 caracteres.'
        ]
    ]
];

The problematic part is the errors['matches[registro.password]'] index in the validation rules array. If I use it like that, when validating, the error message is:

The registro.verificar_password field does not match the registro.password field.

Which is not a text defined by me.
If I change it to errors['matches'] I get the text I defined:

Las contraseñas no coinciden, por favor revisa.

If I do the following example, I get the following results:
var_dump($post['registro']['password'] == $post['registro']['verificar_password']);
// Output
// bool(true)

if(!$validation->run($post, 'registro')) {
    echo $validation->listErrors();
}
// Output
// Las contraseñas no coinciden, por favor revisa.

CodeIgniter 4 version
4.0.4 : dev-develop
Affected module(s)
Validation Library
Expected behavior, and steps to reproduce if appropriate
I expect the validation to not have errors.
Context

OS: Windows 10 x64 1909
Web server Apache/2.4.25 (Win64)
PHP version 7.3.3

You should define your rules this way:
'matches' => 'Las contraseñas no coinciden, por favor revisa.',

But besides that, there is indeed a bug. I just prepared a PR with the fix.

It would be really useful if the example is added to the docs here: https://www.codeigniter.com/user_guide/libraries/validation.html

It's already there: https://codeigniter.com/user_guide/libraries/validation.html#translation-of-messages-and-validation-labels

It's already there: https://codeigniter.com/user_guide/libraries/validation.html#translation-of-messages-and-validation-labels

It is in the rules section only, but there isn't a single example of how to use it in the predefined error messages, that's what brought me here. It's unclear whether it should be used with the brackets or not. I now know how to use it, because you explained above, but I did hit my head against the wall for about an hour :)

Oh... I linked to the wrong section, though it's not bad either.
Look here: https://codeigniter.com/user_guide/libraries/validation.html#setting-custom-error-messages it's a pretty good example and you have a rule with a parameter. IMO validation documentation is pretty solid and we can't add an example for every rule.

Oh... I linked to the wrong section, though it's not bad either.
Look here: https://codeigniter.com/user_guide/libraries/validation.html#setting-custom-error-messages it's a pretty good example and you have a rule with a parameter. IMO validation documentation is pretty solid and we can't add an example for every rule.

Yes, I do agree it would be impossible to add this, but again, that includes an example with ['errors']['min_length'] and while that should be enough, if you compare not only 2 fields but several different pairs, it's not really clear how to do it, something like:
'password3' => [
    'rules' => 'required|matches[password]|matches[password2]|min_length[6]',
    'errors' => [
        'required' => 'This field is required',
        'matches[password]' => 'Password 3 doesn\'t match password 1.',
        'matches[password2]' => 'Password 3 doesn\'t match password 2.',
        'min_length' => 'Your password should be at least 6 characters in length.'
    ]
]

I know this example is not necessarily a real case scenario, but it's a valid example. As you can see the errors messages could be defined either with matches or with matches[index].

The answer is simple. Something like this (rule[parameter] on errors array) is not supported - just because it's not worth implementing.
Validation class is flexible enough so you can define such rules differently (cascading - with other fields) and if it's somehow impossible, then you can always create your own rule to handle an edge case.
Validation rules are there to cover 90-95% of real-life cases. Everything else has to be handled individually by the developer.


Allow taskbased skipping

Fix ability to skip single ansible tasks from linting

Addressed by skip_ansible_later tag. See https://ansible-later.geekdocs.de/configuration/excludes/


[4173] Add atol/rtol for unitary checks in MatrixGate

Add rtol/atol for unitary checks in MatrixGate.
Fixes https://github.com/quantumlib/Cirq/issues/4173.

@googlebot I signed it!

Looks good, please run check/format-incremental --apply


PageView inside a FlexisbleSpaceBar doesn't keep its state.

Steps to Reproduce
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: NestedScrollView(
          headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {
            return <Widget>[
              SliverAppBar(
                expandedHeight: 200,
                flexibleSpace: FlexibleSpaceBar(
                  centerTitle: false,
                  title: Text("TEST"),
                  background: PageView(
                    children: <Widget>[
                      Center(child: Text("1")),
                      Center(child: Text("2")),
                    ],
                  ),
                ),
              ),
            ];
          },
          body: Container(),
        ),
      ),
    );
  }
}

Above is a minimal code snippet that can reproduce this bug

Scroll horizontally to scroll to page 2
Scroll vertically to collapse AppBar. This will re-draw PageView.
The page inside a PageView is back to 1.

I'm trying to use this UI but it doesn't keep PageView's state. Is there any way that I can keep this state in this view hierarchy? Thank you in advance.

Hello @njovy !
Thank you for posting.
Your question seems to be a good fit for the StackOverflow as well. Flutter has a very active and helpful community there, so feel free to post it there too.
Can you please also attach the flutter doctor -v command output?
Thank you.

[✓] Flutter (Channel stable, v1.9.1+hotfix.2, on Mac OS X 10.14.4 18E226, locale en-KR)
    • Flutter version 1.9.1+hotfix.2 at /Users/captainpark/Library/Flutter/sdk
    • Framework revision 2d2a1ffec9 (2 weeks ago), 2019-09-06 18:39:49 -0700
    • Engine revision b863200c37
    • Dart version 2.5.0

[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /Users/captainpark/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 10.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.3, Build version 10G8
    • CocoaPods version 1.7.1

[✓] Android Studio (version 3.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 34.0.1
    • Dart plugin version 182.5215
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)

[✓] IntelliJ IDEA Ultimate Edition (version 2019.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin version 39.0.5
    • Dart plugin version 192.6527

@janmoppel Sorry I forgot to attach it!

Steps to Reproduce
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: NestedScrollView(
          headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {
            return <Widget>[
              SliverAppBar(
                expandedHeight: 200,
                flexibleSpace: FlexibleSpaceBar(
                  centerTitle: false,
                  title: Text("TEST"),
                  background: PageView(
                    children: <Widget>[
                      Center(child: Text("1")),
                      Center(child: Text("2")),
                    ],
                  ),
                ),
              ),
            ];
          },
          body: Container(),
        ),
      ),
    );
  }
}

Above is a minimal code snippet that can reproduce this bug

Scroll horizontally to scroll to page 2
Scroll vertically to collapse AppBar. This will re-draw PageView.
The page inside a PageView is back to 1.

I'm trying to use this UI but it doesn't keep PageView's state. Is there any way that I can keep this state in this view hierarchy? Thank you in advance.

I have this problem too, and it will be Obvious Caton when I quickly expand；Probably why the interface rebuilds the rendering.
If there's a solution, can you let me know ?
Thank you.

I am facing this same issue, everytime I collapse my SliverAppBar, the widget inside flexibleSpace loses it's state. Is there a workaround for this?
thanks

@RafaelRaimund0 When I posted this I wasn't familiar with Flutter widget rendering and state. You can have a PageController and reuse that controller to PageView to keep its position.

oh, nice. Thank you


[Sagas of the Icelanders] Translation enabled

Changes / Comments
Translation enabled
Roll20 Requests
Comments are very helpful for reviewing the code changes. Please answer the relevant questions below in your comment.

[ ] Does the pull request title have the sheet name(s)? Include each sheet name.
[ ] Is this a bug fix?
[x] Does this add functional enhancements (new features or extending existing features) ?
[ ] Does this add or change functional aesthetics (such as layout or color scheme) ?
[ ] If changing or removing attributes, what steps have you taken, if any, to preserve player data ?
[ ] If this is a new sheet, did you follow Building Character Sheets standards ?

If you do not know English. Please leave a comment in your native language.

Hello @urbaman there a few issues with your pr:

When modifying an existing sheet, the sheet's files must remain in the original directory and cannot be moved to a new one.

Also, the directory containing the sheet's main files (sheet.json, translation.json, html, css and preview image) must be in the root of the repository and cannot be nested inside another directory.

Hi,
I do not understand what you're talking about, could you elaborate please?
Here is a shot of the branch I'm working on and from wich I made the pr.

Hey @urbaman you are moving the files into a Celerity folder in the root.

Found the problem, I will make it over


ci: disable OSX due to needing to sort out Circle config issues

Signed-off-by: Matt Klein<EMAIL_ADDRESS>

@zuercher @envoyproxy/maintainers


[DISCUSS] When selecting a source or target field, auto scroll to show the other field involved in the mapping

Migrating this from https://github.com/syndesisio/syndesis-datamapper-ui/issues/55.

We may want to also consider some ability to show all fields involved in the mapping for source and target, possibly using some type of collapsing technique.


Statusline Unknown Field

Hi, I'd like to ask what's this field in my airline status line.

What is it? and How do I disable or get rid of it? (it blocks my column number field). Thanks!
Here's my airline config:
set noshowmode
set laststatus=2
set showtabline=2
let g:airline_powerline_fonts=1
let g:airline#extensions#tabline#formatter = 'unique_tail'
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#show_tabs = 0
let g:airline#extensions#tabline#show_tab_count = 0
let g:airline#extensions#tabline#buffer_idx_mode = 1
let g:airline_highlighting_cache = 1
let airline#extensions#tabline#middle_click_preserves_windows = 1

That is a warning/error field. Since you seem to be writing text, my guess is, that this is the result from the whitespace extension. You can use :AirlineToggleWhitespace to disable it.

@chrisbra Hi, I've tried adding the following to my ~/.vimrc file but it didn't work.
let g:AirlineToggleWhitespace=1
let g:airline#extensions#whitespace#enabled=0
silent! call airline#extensions#whitespace#disable()

However, It seems the problem is the coc-extension coc-markdownlint, because when I disable the markdown-linting, the whitespace detection field goes away.
Is there any way to disable the whitespace detection without disabling the markdown-linting? I've tried the syntax above and it didn't disable whitespace detection, unless I disable markdown-linting via coc-action. Please feel free to close this issue if what I'm asking in unnecessary. Thanks!

According to the source:
https://github.com/vim-airline/vim-airline/blob/d0c67776f27eb49cccbd58008724bd6caa00ed8f/autoload/airline/extensions/whitespace.vim#L12
you need to set :let g:airline#extensions#whitespace#enabled=0 to disable the whitespace extension. But as you found out, it more looks like your coc plugin is creating that actual section. Because coc also makes use of the warning/error section.


Smoke test for Docfx v3

Docs Build status updates of commit f2907fc:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-edge/SmokeTest.md
:white_check_mark:Succeeded
View

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


Requiring Dingo from a Laravel 5.1 app with api driven sub-packages.

Hey,
I'm trying to make my application's api driven packages to require Dingo on their own. I can't seem to make it work.
I have the main application repo with Laravel 5.1 installed, Dingo normally work flawless in packages while developing (we're using a workbench folder with psr-4 autoloading the classes). We get a composer error, when we're trying to actually deploy the packages to what would be the normal use case in a production environnement (loading packages from a satis repository). Here is some part of the composer.json files..
Main app require example
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.1.*",
"vp/common": "dev-master",
"vp/api-package1": "dev-master",
"vp/api-package2": "dev-master"
},
Package require example
"require": {
"php": ">=5.5.9",
"dingo/api": "1.0.*@dev"
},
I assume Dingo when required from a sub-package should be added to the vendor list as normal packages do. Do Dingo need to be only required in each of our main-apps instead of inside the api packages (which would be included in a few main-apps)?
I don't think it's a bug, you're the one that can tell me if it's intended to be that way or not.
Our solution for now is to add dingo to the main-app's composer.json, I just feel it should be in packages. Am I wrong?

Assuming that package is being required properly then it should be installed fine. What's the Composer error your seeing?

That's what I thought too. In order to work, i need to put Dingo into the main composer.json file.

Fixed, my bad I

I thought we had solved the problem, we still had the issue because we have still have to keep it in the main composer.json. Here's the output.

Should be "dingo/api": "v1.0.*@dev". Note the asterisks, or you can use an x.


httpd_socket_send return value does not match the docs  (IDFGH-9275)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.
v5.1-dev-3073-g9c29ec0f15
Operating System used.
Windows
How did you build your project?
Command line with idf.py
If you are using Windows, please specify command line type.
PowerShell
Development Kit.
ESP32-S3-WROOM-1-N16R2
Power Supply used.
USB
What is the expected behavior?
According to the docstring,
 * @return
The return value should be either bytes sent (success) or negative error codes.  This matches socket send behavior.
What is the actual behavior?
However,
https://github.com/espressif/esp-idf/blob/236fa5e6698a262aed534d2a46c78711204b903a/components/esp_http_server/src/httpd_txrx.c#L625-L628
will return ESP_ERR_INVALID_ARG or ESP_ERR_INVALID_STATE. They are postive numbers hence confusing the error check whether the return value is less than zero.
Steps to reproduce.
N/A
Debug Logs.
No response
More Information.
Rather than saying this is a documentation issue, I would say this is probably due to inconsistent design of the API about how the error should be reported. In this case, the http_socket_send's return value cannot reliably tell how many bytes were sent. It could only be used to check if any error occurs.

One example of potential problem:
When sending 258 bytes using this API, the return value will match ESP_ERR_INVALID_ARG. If not validating the return value, we are risking sending to a closed socket. However, if validating the return value, we may get a false positive when sending that specific amount of bytes.

I would recommend instead of returning ESP_ERR_*, the API should return a negative value to ensure the consistency. maybe returning -ESP_ERR_INVALID_ARG and -ESP_ERR_INVALID_STATE

Before this issue is fixed, I suggest to use the extra check to workaround the bug:
if(httpd_sess_get_ctx(hd, fd) != nullptr) {
    if (httpd_socket_send(hd, fd, ...) < 0) {
        // error
    }
}

Hello @wuyuanyi135
Thanks for raising the issue. I think instead of returning -ESP_ERR_INVALID_ARG and -ESP_ERR_INVALID_STATE we can return HTTPD_SOCK_ERR_INVALID which is a negative value. This will also match the return values in the API description in the header file.
I will fix this issue internally.

@hmalpani Thanks for the prompt response! FYI, httpd_socket_recv has the same issue and could be fixed similarly.

@hmalpani Thanks for the prompt response! FYI, httpd_socket_recv has the same issue and could be fixed similarly.

Yes. I have raised an internal MR to fix both APIs. The fix will be available soon. Thanks!


issue in using regex example

Hi
I am having an issue getting the regex example to work.
'calculate :quarter stats': {'regexp': /^calculate (January|April|July|October) stats$/, 'callback':
}
Uncaught SyntaxError: Unexpected token }
assistent.js line 77
If I comment this line, annyang goes on and continues to listen and work nicely.
Can you help?

You have omitted the callback function itself (calculateFunction) - the full example is:

var calculateFunction = function(month) { console.log(month); }
var commands = {
  // This example will accept any word as the "month"
  'calculate :month stats': calculateFunction,
  // This example will only accept months which are at the start of a quarter
  'calculate :quarter stats': {'regexp': /^calculate (January|April|July|October) stats$/, 'callback': calculateFunction}
}

Thanks @lmangani
@staminna Does that solve it? If you are still having an issue, please reopen and provide more details (full code), we'll try and help.

I tried the below, but the optional word (the) became a mandatory one!:
'calculate (the) :quarter stats': {
                  'regexp': /^calculate (January|April|July|October) stats$/,
                  'callback': function(quarter){alert(quarter);}
                }

@hasan3ysf When using regular expressions, the only things that counts for matching purposes is what you put in under 'regexp' (/^calculate (January|April|July|October) stats$/). The key you entered (calculate (the) :quarter stats) for referring to this command is just a name and isn't used for matching with what the user says


Add Earth engine features

We should be able to add earth engine sourced features to arbitrary csv files in a way similar to how we enrich the current code for load_sample_data.  We first load the main data with lat/lon and labels - then we take a list of earth engine assets that can return values at those lat/lon locations and add them as features.

in our insights and analytics solution we don't support GDrive ... we will need to tune the Hypothesis library to import isoscapes from Earth Engine


feat: install utilities

Closes: #65

:tada: This PR is included in version 1.9.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


MOTU AVB switch as TC

It looks like two types of MOTU AVB switch and both are slightly different, but I'm not sure if there is any differences in its functionality.

And I expected MOTU AVB switch behaves as TC and correction field in PTP data should have meaningful data, but seeing from the ethernet data via wireshark, correction field is always all zero.  The result of tcpdump at slave shows all zero correlation data from GMC.  All devices are connected to MOTU AVB switch.  I have both types MOTU AVB switch, and I cannot see any data other than zero in correlation field for both type.  The firmware of the switch is the latest one.
Do i misunderstand what TC does, or am I missing something?

It would be great to be able to get this working. I don't know much about this...
I am guessing that the problem here is that it is specifically an AVB switch rather than a general-purpose IEEE1588 switch, and that this means it will only work when IEEE1588 is being used in an AVB-compliant way.
AVB includes the 802.1AS profile of  IEEE1588, which is also called gPTP, plus a bunch of other stuff. I see there's a file /usr/share/doc/linuxptp/configs/gPTP.cfg, so I think the first thing to try is using that config.

Thank you very much for the comment.
At first, I tried to run ptp4l with -2 while the configuration file was not changed, but it looked like no PTP related ethernet data sent to the network.
Then I tried to use gPTP.cfg as the configuration file without -2 option, but ptp4l didn't send anything related to PTP.
I ran tcpdump at PTP slave which was prepared to monitor how PTP slave behaves to see if any PTP ethernet data can be received.
Seeing from the situation, MOTU AVB switch may not be suitable for the current environment.  This means there is no TC in my network environment, and I may not expect sub micro precision from GMC.  Then, I may need to connect PTP slave directly to GMC without L2 switch...

Looks like AVB also needs some VLANs and traffic control stuff. See https://tsn.readthedocs.io/avb.html#system-setup
But, as you say, if Dante is expecting UDP transport rather than L2, then I guess it's going to be difficult to make it work.
I just got an IES3110-8TF-R as well, but I haven't set it up yet. There's some updated FW here: https://www.fs.com/sg/products_support/search.html?id=148180  (which the IES3110-8TF doesn't). the  The CLI manual has a bunch of new PTP stuff.  I think it's likely the best option.

Thank you very much for the information.  Now, I give up MOTU AVB for my usage.
I've just ordered IES3110-8TF-R, which expects be delivered middle of June.  Until I receive them, I try to be more familiar to PTP operation and its behavior.
p.s.
For GNSS, I found how to enable QZSS a few days ago.  I did survey several times changing where the antenna is located in the veranda, but it still didn't provide good result.  I decreased the number of GPS to be used to avoid SVs which looked like observed via reflected radio wave via some of tall buildings around my house, and did survey again for short period.  This provided much better result than what I've done many times.  After survey, it started fixed mode, and I decreased more of GPS so that QZSS would be referred much more.  This may be tricky, but I'm going to see how it will look like.

Thank you very much for the information.
I used to use SG300, not 350, for daily work, it's too noisy (fan noise) for private use.  Even for the used one, it looks much expensive in Japan than what James suggested (feisu.com aka fs.com).

The 10 port versions have no fan as the biggest models but the fs are nice too.


⚠ ClamAV has degraded performance

In 223f100, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 66 ms

Resolved: ClamAV performance has improved in e4512fd.


[tinyutf8] Initial port for tinyutf8.

This PR is an initial port for tinyutf8(https://github.com/DuffsDevice/tinyutf8).

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: tumugin sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

Thanks for the PR! I did some simplification while merging :)


IFMVP Context Presented View plus methods extra binding options

Binding options for

Fractions/floats
Integers
Bools

@bhm moved pull request

@bhm please approve, this pr is MINE NOW !


Add verbose flag to run_circuit

If verbose=0 only show static INFO message:
[2024-07-11 10:43:45,023] INFO: Post new circuit on the server
[2024-07-11 10:43:45,119] INFO: Job posted on server with pid 20fa917ac9qwerqwbe4c1b9f697800912bc9ee
[2024-07-11 10:43:45,120] INFO: Please wait until your job is completed...

If verbose=1:
[2024-07-11 10:43:45,023] INFO: Post new circuit on the server
[2024-07-11 10:43:45,119] INFO: Job posted on server with pid 20fa917ac9be4c1b9f697800912bc9ee
# every 2 seconds (SECONDS_BETWEEN_CHECKS)
[2024-07-11 10:43:45,120] INFO: Job QUEUEING.
[2024-07-11 10:43:45,120] INFO: Job RUNNING.
[2024-07-11 10:43:45,120] INFO: Job COMPLETED.

@scarrazza  Current status.
If verbose=0 (default):
[2024-07-19 16:06:49,150] INFO: Post new circuit on the server
[2024-07-19 16:06:49,171] INFO: Job posted on server with pid 5d3c3447777d48299db510758577f6ad
[2024-07-19 16:06:49,172] INFO: Check results availability for 5d3c3447777d48299db510758577f6ad job in your reserved page at http://localhost:8011/
[2024-07-19 16:06:49,172] INFO: Please wait until your job is completed...

If verbose=1
[2024-07-19 16:05:10,843] INFO: Post new circuit on the server
[2024-07-19 16:05:10,862] INFO: Job posted on server with pid 1765bb793bf243d4bbbc6ee86f4ee525
[2024-07-19 16:05:10,862] INFO: Check results availability for 1765bb793bf243d4bbbc6ee86f4ee525 job in your reserved page at http://localhost:8011/
[2024-07-19 16:05:10,867] INFO: Job QUEUEING
[2024-07-19 16:05:11,882] INFO: Job RUNNING
[2024-07-19 16:05:12,886] INFO: Job RUNNING
[2024-07-19 16:05:13,890] INFO: Job RUNNING
[2024-07-19 16:05:14,896] INFO: Job RUNNING
[2024-07-19 16:05:15,907] INFO: Job COMPLETED


Check it hasn't been added before new for add_option and add_lptoken

https://www.notion.so/when-add_option-and-add_lptoken-check-that-the-address-has-not-been-added-before-1439ef3325fa4d22bf28b0d19cd4307e

@tensojka looks good... merged to dev


FORTRANFLAGS not included when compiling .f90 files

This issue was originally created at: 2008-11-11 22:48:13.
This issue was reported by: audiofanatic.
audiofanatic said at 2008-11-11 22:48:13

We have a mix of fortran files with file extensions .F .f and .f90. In all cases, the SCons man page says the contents of the FORTRANFLAGS variable will be included, but (in scons v1.1.0 at least), the FORTRANFLAGS contents are not getting added to the compile line for .f90 files (confirmed under linux and Windows). I cannot be sure if this has always been the case or if it only changed between version 0.98.5 and 1.1.0, but we've only just encountered this issue now when building under Windows and I'm fairly sure it used to build okay with 0.98.5.

gregnoel said at 2008-11-21 17:42:46

Bug party triage.

gregnoel said at 2010-01-20 03:37:53

Not completed in time for the 1.3 release; move to 2.1 p2.

garyo said at 2012-09-01 10:01:49

Bumping all old issues targeted for past releases to 2.x.

Would be great if this could be fixed, despite not many of us compiling Fortran using SCons.

@bdbaddog I'm using version 4.0.1.
Here's the full version info:
SCons: v4.0.1.c289977f8b34786ab6c334311e232886da7e8df1, 2020-07-17 01:50:03, by bdbaddog on ProDog2020
Was this fixed in more recent versions?

Don't think any of this has been touched recently, it's just a "standard question" to help narrow things down.
If I dump the environment and look at the command-string values, they look like the following paste.  The Fortran stuff is weird, it's supposed to have a common piece, and then some specialization for specific dialects, such that if you specifically use a .f90 file it would get special treatment. the 'PP' lines are for use if the sources are expected to run through the C preprocessor.
  'F03COM': '$F03 -o $TARGET -c $F03FLAGS $_F03INCFLAGS $_FORTRANMODFLAG ' '$SOURCES',
  'F03PPCOM': '$F03 -o $TARGET -c $F03FLAGS $CPPFLAGS $_CPPDEFFLAGS ' '$_F03INCFLAGS $_FORTRANMODFLAG $SOURCES',
  'F08COM': '$F08 -o $TARGET -c $F08FLAGS $_F08INCFLAGS $_FORTRANMODFLAG ' '$SOURCES',
  'F08PPCOM': '$F08 -o $TARGET -c $F08FLAGS $CPPFLAGS $_CPPDEFFLAGS ' '$_F08INCFLAGS $_FORTRANMODFLAG $SOURCES',
  'F77COM': '$F77 -o $TARGET -c $F77FLAGS $_F77INCFLAGS $SOURCES',
  'F77PPCOM': '$F77 -o $TARGET -c $F77FLAGS $CPPFLAGS $_CPPDEFFLAGS ' '$_F77INCFLAGS $SOURCES',
  'F90COM': '$F90 -o $TARGET -c $F90FLAGS $_F90INCFLAGS $_FORTRANMODFLAG ' '$SOURCES',
  'F90PPCOM': '$F90 -o $TARGET -c $F90FLAGS $CPPFLAGS $_CPPDEFFLAGS ' '$_F90INCFLAGS $_FORTRANMODFLAG $SOURCES',
  'F95COM': '$F95 -o $TARGET -c $F95FLAGS $_F95INCFLAGS $_FORTRANMODFLAG ' '$SOURCES',
  'F95PPCOM': '$F95 -o $TARGET -c $F95FLAGS $CPPFLAGS $_CPPDEFFLAGS ' '$_F95INCFLAGS $_FORTRANMODFLAG $SOURCES',
  'FORTRANCOM': '$FORTRAN -o $TARGET -c $FORTRANFLAGS $_FORTRANINCFLAGS ' '$_FORTRANMODFLAG $SOURCES',
  'FORTRANPPCOM': '$FORTRAN -o $TARGET -c $FORTRANFLAGS $CPPFLAGS ' '$_CPPDEFFLAGS $_FORTRANINCFLAGS $_FORTRANMODFLAG $SOURCES',

None of the specialized versions include FORTRANFLAGS.
Any further information - like a simple example that trips over this - might help track things down.

I set up a minimal example with four files called hello77.f, hello77v2.f, hello90.f90, hello90v2.f90. All had the same contents (shown at the bottom of the comment). I then made a minimal SConstruct with four programs:
fortranFlags = ['-Wall']
f77Flags = ['-Werror']
f90Flags = ['-Werror']

# f77 with fortranFlags
Program('h77', 'hello77.f',  FORTRANFLAGS=fortranFlags)

# f77 with f77Flags
Program('h77v2', 'hello77v2.f', F77FLAGS=f77Flags)

# f90 with fortranFlags
Program('h90', 'hello90.f90', FORTRANFLAGS=fortranFlags)

# f90 with f90Flags
Program('h90v2', 'hello90v2.f90', F90FLAGS=f90Flags)

As you can see, the programs are compiled with either FORTRANFLAGS or F77FLAGS|F90FLAGS (depending on the format).
The output of compiling with scons is
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
gfortran -o hello77.o -c -Wall hello77.f
gfortran -o hello77v2.o -c hello77v2.f
gfortran -o hello90.o -c hello90.f90
gfortran -o hello90v2.o -c -Werror hello90v2.f90
scons: done building targets.

The output clearly shows that FORTRANFLAGS are applied to the *.f file and F90FLAGS are applied to the *.f90 file.
Incidentally, I did also try explicitly setting F77='ifort' to set the compiler for program h77v2. The compiler was ignored in favor of gfortran
source file:
      program hello
        print *, "Hello"
      end program hello

Thanks for the sample.  As mentioned on DIscord, it doesn't look like SCons' "other" Fortran tools make any effort to account for FORTRANFLAGS and any other ostensibly generic-Fortran construction variables.  We'll have to figure out what the way forward is.

Thanks for the sample. As mentioned on DIscord, it doesn't look like SCons' "other" Fortran tools make any effort to account for FORTRANFLAGS and any other ostensibly generic-Fortran construction variables. We'll have to figure out what the way forward is.

No problem. It would be nice to have a common set of flags I can apply to all fortran source files, but I'd be happy with setting separately if that's the way that you decide to go. As long as the doc is consistent with the behavior either seem acceptable solutions.

Will certainly clarify.  I'm a little worried that "I don't think this means what you think it means", but the people involved with what the code looks like now are not available to ask their intent - unless @bdbaddog has some memory (I don't think he worked on Fortran support though, back in the day).
It seems that gfortran - and possibly other compilers - consider file suffixes from .f95 on to be free-form whereas .f is fixed-form, unless you say otherwise by use of flags.  This kind of suggests against SCons itself trying to detect "different compilers" based on file suffixes, but I guess that's a different question.
Per this from the above:

Incidentally, I did also try explicitly setting F77='ifort' to set the compiler for program h77v2. The compiler was ignored in favor of gfortran

I think you actually have to specify the tool to get that to work, something similar to:
env = Environment(tools=['ifort', 'defaults'])

Incidentally, I did also try explicitly setting F77='ifort' to set the compiler for program h77v2. The compiler was ignored in favor of gfortran

I think you actually have to specify the tool to get that to work

Or... make sure gfortran/g77 aren't available so the autodetection goes on and finds ifort.

I agree about using the tool, however, regarding the ifort tool, it's quite out of date w.r.t. the latest compilers (last time I looked).
That's a separate issue I suppose.

#2143 would appear somewhat related.

...regarding the ifort tool, it's quite out of date w.r.t. the latest compilers (last time I looked).
That's a separate issue I suppose.

It is.  That may be what #2752 is about. In any case, In any case, there is a related issue on this - #3962 - I have the current Intel compiler suite installed on one box, it's been rebranded OneAPI and completely restructured from "the old days", and I assume SCons won't find anything at all related to its use - that's not specific to Fortran; I'm not even sure if Fortran is included in that, because I didn't make any attempt to install it at the time.

Yes, Fortran is now part of the OneAPI suite: https://www.intel.com/content/www/us/en/developer/tools/oneapi/fortran-compiler.html

Yes, it's included into that for the latest releases.
At some point I took the existing tool (~7-8 years ago) and hacked it up to support the ifort compilers as we've upgraded over the years.  I certainly don't mind sharing this if you want.

Contribution certainly welcome!

There's new documentation, not published yet, but in docbook form you can see it at: https://github.com/SCons/scons/blob/067e290d832e17158aeb068bddb39dc9ad46d5cc/doc/man/scons.xml#L7493.  This should hopefully make some of the behavior of "dialects" a bit more clear.  It's not as clear as it could be, because I still don't entirely understand things.
Since available evidence is that FORTRANFLAGS is intended not to propagate to other dialects (each dialect-specific flags testcase specifically sets a flag in FORTRANFLAGS and makes sure it does not appear on the issued command line), the linked PR #4180 proposes a new FORTRANCOMMONFLAGS instead, which does propagate.

Thanks for sharing the PR, FORTRANCOMMONFLAGS does the expected thing now, thanks @mwichmann.


unbound: 1.8.0 -> 1.8.1

Motivation for this change
Version bump.
Things done

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

[x] NixOS
[ ] macOS
[ ] other Linux distributions

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

@GrahamcOfBorg build unbound

Success on x86_64-darwin (full log)
Attempted: unbound
Partial log (click to expand)
/nix/store/ax3lily131yjmzzgn5h4dv0ij3m302wl-unbound-1.8.1

Hmm, suspiciously fast, but hopefully OK.

Success on x86_64-linux (full log)
Attempted: unbound
Partial log (click to expand)
strip is /nix/store/vcc4svb8gy29g4pam2zja6llkbcwsyiq-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/k4m0cayw5g732zp4ylid6n0wq1xiyl2f-unbound-1.8.1-lib/lib
patching script interpreter paths in /nix/store/k4m0cayw5g732zp4ylid6n0wq1xiyl2f-unbound-1.8.1-lib
checking for references to /build in /nix/store/k4m0cayw5g732zp4ylid6n0wq1xiyl2f-unbound-1.8.1-lib...
shrinking RPATHs of ELF executables and libraries in /nix/store/7867z5lq7cpc2jdmfp8xbbh982sshf1l-unbound-1.8.1-man
gzipping man pages under /nix/store/7867z5lq7cpc2jdmfp8xbbh982sshf1l-unbound-1.8.1-man/share/man/
strip is /nix/store/vcc4svb8gy29g4pam2zja6llkbcwsyiq-binutils-2.30/bin/strip
patching script interpreter paths in /nix/store/7867z5lq7cpc2jdmfp8xbbh982sshf1l-unbound-1.8.1-man
checking for references to /build in /nix/store/7867z5lq7cpc2jdmfp8xbbh982sshf1l-unbound-1.8.1-man...
/nix/store/mdprb6mvc8jwrj4s3dva4y7crb2yzwxw-unbound-1.8.1

Success on aarch64-linux (full log)
Attempted: unbound
Partial log (click to expand)
strip is /nix/store/p9akxn2sfy4wkhqdqa3li97pc6jaz3r1-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/rkfaya399d8pi2n0myzzhpf3lrxl5f84-unbound-1.8.1-lib/lib
patching script interpreter paths in /nix/store/rkfaya399d8pi2n0myzzhpf3lrxl5f84-unbound-1.8.1-lib
checking for references to /build in /nix/store/rkfaya399d8pi2n0myzzhpf3lrxl5f84-unbound-1.8.1-lib...
shrinking RPATHs of ELF executables and libraries in /nix/store/ik4157l61f6c5xj28hrxkppc1vfb3lyr-unbound-1.8.1-man
gzipping man pages under /nix/store/ik4157l61f6c5xj28hrxkppc1vfb3lyr-unbound-1.8.1-man/share/man/
strip is /nix/store/p9akxn2sfy4wkhqdqa3li97pc6jaz3r1-binutils-2.30/bin/strip
patching script interpreter paths in /nix/store/ik4157l61f6c5xj28hrxkppc1vfb3lyr-unbound-1.8.1-man
checking for references to /build in /nix/store/ik4157l61f6c5xj28hrxkppc1vfb3lyr-unbound-1.8.1-man...
/nix/store/8ihxhg47nn6dyi0d7zb4kj0608bfw077-unbound-1.8.1


Speed up printing of large sample sets

Comparison:
import time

import dimod
import numpy as np

sampleset = dimod.SampleSet.from_samples(np.ones((91, 500000)), vartype='BINARY', energy=np.zeros(91))

t = time.perf_counter()
dimod.serialization.format.Formatter().format(sampleset)
print(time.perf_counter() - t)

As an example, running this simple test locally gives 22.33913665200089 without the change and 0.007365263998508453 with.
Also add variable object slicing.
Closes https://github.com/dwavesystems/dimod/issues/1069
Closes https://github.com/dwavesystems/dimod/issues/1068

Codecov Report

Merging #1075 (9871201) into main (52901df) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main    #1075   +/-   ##
=======================================
  Coverage   92.86%   92.87%
=======================================
  Files          81       81
  Lines        7349     7354    +5
=======================================
+ Hits         6825     6830    +5
  Misses        524      524

Impacted Files
Coverage Δ

dimod/serialization/format.py
97.57% <100.00%> (+0.06%)
:arrow_up:

Continue to review full report at Codecov.

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


Fix the preoblem when using select into with view path which is same as base path.

Description
The situation is as below, when the source columns have both base and view paths, and all these paths indicate same base paths.

coverage: 47.921%. remained the same when pulling ac0288324e4d594d3ca9c8da2805a55c53a6b95f on beyyes/view_select_into into ec700a1ed40c2962f6a28fe9b85461a2878317c5 on master.


Additional package path?

I have some additional packages that I need to test that aren't yet in the MINGW-packages repository (although hopefully they will be eventually). Basically, I have a local 'file://' repository that I add to my /etc/pacman.conf file, and then install. See below from my workflow file msys2.yml.
I wonder if there would be some way to extend msys2/setup-msys2 to include support for adding extra entries in /etc/pacman.conf?
Note that if we had that, I would still need to install wget first, so it would probably need two separate calls to msys2/setup-msys2, perhaps it all gets too complicated. Thoughts...?
    - name: Install OpenModelica
      run: |
        cd ~
        wget -qO- "https://cloudstor.aarnet.edu.au/plus/s/VBZETOzDPK51Ywr/download" | bsdtar -xvf-
        cd omc-repo
        echo -e "[openmodelica]\nSigLevel=Never\nServer=file://$PWD" >> /etc/pacman.conf
        pacman -Sy --noconfirm mingw-w64-x86_64-omc mingw-w64-x86_64-openmodelica-msl
        echo "REVIEW INSTALLED OMC VERSION..."
        omc --version

I wonder if there would be some way to extend msys2/setup-msys2 to include support for adding extra entries in /etc/pacman.conf?

I just came to suggest this, though I don't know how it would work in practice.

Note that if we had that, I would still need to install wget first, so it would probably need two separate calls to msys2/setup-msys2, perhaps it all gets too complicated. Thoughts...?

You could use curl, which ships as part of Windows now, via cmd or powershell before setup-msys2.  also the version of bsdtar that comes with Windows (as tar.exe) to extract after downloading.


Feature request: term relevance (through backward-chaining?)

Traditional web forms distinguish mandatory vs optional fields, to be validated upon form submission. A web form can be thought of as submitting all the fields at once, in a batch.
However, a more general decision logic does not easily admit easy partitioning of ground terms between "mandatory" and "optional".
In a UI which allows the end user to more interactively fill in values for input fields – "valuating ground terms incrementally" – a reasoner should be able to determine, upon each field input, which fields to ask for next, without obsessing over the mandatory/optional distinction.
red == 1 and (green > 0 or blue == 42)

Most people would consider that red is mandatory … at first … or at least relevant. Let's see.
If red = 2 then green and blue are optional – no longer relevant – because we short circuit to answer=False.
If red = 1 then green and blue are relevant though neither is strictly mandatory
Because if green is -100 then blue becomes mandatory
But if green is 100 then blue is optional
If the user fills in blue = 42 then we don't need to ask for green
So in this case the UI should operate in three steps
1. Red: [__]  Green: [__]   Blue: [__]

User gives red = 1
2. Green: [__]   Blue: [__]

User gives blue = 40
3. Green: [__]

User gives green = 100
Answer: true

Why isn't red a mandatory field? Because if both green and blue resolve to negative then we don't need red any more to return false.

We can compose this problem with the related problem of allowing end users to answer parent nodes. "I know that the green/blue sub expression is true, but for privacy reasons I cannot tell you which of green or blue satisfies"

As a quick note, YScript seems to do something like the first feature request, and they seem to do it using Z3: https://wohanley.com/posts/visual-yscript/#explanation


fix: create "/usr/local/share/influxdb3" before becoming "influxdb3"

So when I run this with docker run -it influxdb3 after having built it and tagged it as influxdb3 it's just hanging.  I'll experiment a bit to find something that works.

Okay I tried with the verbose flag and it looks like it started actually but I wasn't seeing output in the terminal. The fact I can't send ^C isn't great though, but I don't think that's this changes fault. I need to see if it actually can receive data.

Okay I have figured it out and it's not these changes that were the issue. It does fix things.

The wrong port was exposed in the container
I wasn't running it with the -p flag go figure
We didn't set a default log level and so nothing was printing out. I'll make a separate PR for that. As is I can merge these changes and put mine in my branch 😄


Downgrade Xcode on macos CI runners

Marking tests as flaky should not be needed now, and we can come back to using latest macos runners instead of the beta macos-13.
The root cause of the issue was a supposedly incompatible Xcode version on the runner, libsodiumjni was released using version 12.3, while the runners use 15 by default.
We should try to release an updated version of libsodium jni in the near future.


UVI Request

--- UVI JSON ---
{
  "vendor_name": "Linux",
  "product_name": "Kernel",
  "product_version": "versions from v5.10 to before v5.10.46",
  "vulnerability_type": "unspecified",
  "affected_component": "unspecified",
  "attack_vector": "unspecified",
  "impact": "unspecified",
  "credit": "",
  "references": [
    "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=cd418ba63f0c2f6157f35a41c9accc6ecb52590a",
    "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=5a1cd67a801cf5ef989c4783e07b86a25b143126"
  ],
  "extended_references": [
    {
      "type": "commit",
      "value": "cd418ba63f0c2f6157f35a41c9accc6ecb52590a",
      "note": "introduced"
    },
    {
      "type": "commit",
      "value": "5a1cd67a801cf5ef989c4783e07b86a25b143126",
      "note": "fixed"
    }
  ],
  "reporter": "joshbressers",
  "reporter_id": 1692786,
  "notes": "",
  "description": "mac80211: fix skb length check in ieee80211_scan_rx()\n\nThis is an automated ID intended to aid in discovery of potential security vulnerabilities. The actual impact and attack plausibility have not yet been proven.\nThis ID is fixed in Linux Kernel version v5.10.46 by commit 5a1cd67a801cf5ef989c4783e07b86a25b143126, it was introduced in version v5.10 by commit cd418ba63f0c2f6157f35a41c9accc6ecb52590a. For more details please see the references link."
}
--- UVI JSON ---

This issue has been assigned UVI-2021-1000976


Lie about interface to test specification expression finalization

This lets us test this aspect without having to use execute_command_line

FYI, I checked and nagfor passes this test suite.


Change rule transform to insert if missing

This way, existing rules called "redirect HTTP to HTTPS" will take precedent and prevents a duplicate rule from being added in the case that one by the same name already exists.

This will allow us to avoid duplicate rules as we transition away from this plugin

Looks good, thanks!