text:
build Hobbes with Clang on Linux

[1/186] Building CXX object CMakeFiles/hobbes-test.dir/test/Convert.C.o
FAILED: CMakeFiles/hobbes-test.dir/test/Convert.C.o
/home/chaz/.local/local/clang+llvm/bin/clang++  -I/home/chaz/.local/local/clang+llvm/include -I../include -Werror=old-style-cast -Werror -Wall -Wextra -Winit-self -Wreturn-type -Wunused-variable -Wsign-compare
-Warray-bounds -Wunknown-pragmas -Wuninitialized -Wstrict-aliasing -Wunused-value -Wunused-label -Wswitch -Wcast-align -Wctor-dtor-privacy -Wmissing-noreturn -Wunused-parameter -Wreorder -O2   -D_GNU_SOURCE -D_
_STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -DPYTHON_EXECUTABLE="/home/chaz/.local/bin/python" -DSCRIPT_DIR="/home/chaz/git/github.com_Morgan-Stanley_hobbes/scripts/" -std=gnu++14 -MD -MT
 CMakeFiles/hobbes-test.dir/test/Convert.C.o -MF CMakeFiles/hobbes-test.dir/test/Convert.C.o.d -o CMakeFiles/hobbes-test.dir/test/Convert.C.o -c ../test/Convert.C
In file included from ../test/Convert.C:20:
../include/hobbes/fregion.H:115:77: error: function 'raiseSysError' could be declared with attribute 'noreturn' [-Werror,-Wmissing-noreturn]
inline void raiseSysError(const std::string& msg, const std::string& fname) {
                                                                            ^
../include/hobbes/fregion.H:1685:27: error: unused parameter 'n' [-Werror,-Wunused-parameter]
    void ctor(const char* n, int id) {
                          ^
../include/hobbes/fregion.H:1685:34: error: unused parameter 'id' [-Werror,-Wunused-parameter]
    void ctor(const char* n, int id) {
                                 ^
../include/hobbes/fregion.H:1904:95: error: unused parameter 'wss' [-Werror,-Wunused-parameter]
    static void setWriteCBs(uint32_t, const std::function<void(uint32_t,uint64_t)>&, Wss& ... wss) { }
                                                                                ^
4 errors generated.
[2/186] Building CXX object CMakeFiles/hobbes-test.dir/test/Definitions.C.o
FAILED: CMakeFiles/hobbes-test.dir/test/Definitions.C.o
/home/chaz/.local/local/clang+llvm/bin/clang++  -I/home/chaz/.local/local/clang+llvm/include -I../include -Werror=old-style-cast -Werror -Wall -Wextra -Winit-self -Wreturn-type -Wunused-variable -Wsign-compare
-Warray-bounds -Wunknown-pragmas -Wuninitialized -Wstrict-aliasing -Wunused-value -Wunused-label -Wswitch -Wcast-align -Wctor-dtor-privacy -Wmissing-noreturn -Wunused-parameter -Wreorder -O2   -D_GNU_SOURCE -D_
_STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -DPYTHON_EXECUTABLE="/home/chaz/.local/bin/python" -DSCRIPT_DIR="/home/chaz/git/github.com_Morgan-Stanley_hobbes/scripts/" -std=gnu++14 -MD -MT
 CMakeFiles/hobbes-test.dir/test/Definitions.C.o -MF CMakeFiles/hobbes-test.dir/test/Definitions.C.o.d -o CMakeFiles/hobbes-test.dir/test/Definitions.C.o -c ../test/Definitions.C
In file included from ../test/Definitions.C:2:
In file included from ../include/hobbes/hobbes.H:6:
In file included from ../include/hobbes/eval/cc.H:7:
../include/hobbes/lang/tylift.H:429:37: error: unused parameter 'tenv' [-Werror,-Wunused-parameter]
    static MonoTypePtr type(typedb& tenv) { return Prim::make("unit"); }
                                    ^
In file included from ../test/Definitions.C:2:
In file included from ../include/hobbes/hobbes.H:6:
In file included from ../include/hobbes/eval/cc.H:13:
In file included from ../include/hobbes/eval/jitcc.H:9:
In file included from ../include/hobbes/util/llvm.H:18:
In file included from /home/chaz/.local/local/clang+llvm/include/llvm/IR/DerivedTypes.h:23:
In file included from /home/chaz/.local/local/clang+llvm/include/llvm/IR/Type.h:17:
/home/chaz/.local/local/clang+llvm/include/llvm/ADT/APFloat.h:842:31: error: function 'APFloat' could be declared with attribute 'noreturn' [-Werror,-Wmissing-noreturn]
  APFloat() : U(IEEEdouble()) {
                              ^
In file included from ../test/Definitions.C:2:
In file included from ../include/hobbes/hobbes.H:6:
In file included from ../include/hobbes/eval/cc.H:13:
In file included from ../include/hobbes/eval/jitcc.H:9:
In file included from ../include/hobbes/util/llvm.H:19:
In file included from /home/chaz/.local/local/clang+llvm/include/llvm/IR/IRBuilder.h:22:
In file included from /home/chaz/.local/local/clang+llvm/include/llvm/IR/BasicBlock.h:22:
In file included from /home/chaz/.local/local/clang+llvm/include/llvm/IR/Instruction.h:22:
In file included from /home/chaz/.local/local/clang+llvm/include/llvm/IR/DebugLoc.h:17:
In file included from /home/chaz/.local/local/clang+llvm/include/llvm/IR/TrackingMDRef.h:16:
/home/chaz/.local/local/clang+llvm/include/llvm/IR/Metadata.h:95:49: error: function 'handleChangedOperand' could be declared with attribute 'noreturn' [-Werror,-Wmissing-noreturn]
  void handleChangedOperand(void *, Metadata *) {
                                                ^
/home/chaz/.local/local/clang+llvm/include/llvm/IR/Metadata.h:888:42: error: function 'operator delete' could be declared with attribute 'noreturn' [-Werror,-Wmissing-noreturn]
  void operator delete(void *, unsigned) {
                                         ^
/home/chaz/.local/local/clang+llvm/include/llvm/IR/Metadata.h:893:48: error: function 'operator delete' could be declared with attribute 'noreturn' [-Werror,-Wmissing-noreturn]
  void operator delete(void *, unsigned, bool) {
                                               ^
In file included from ../test/Definitions.C:2:
In file included from ../include/hobbes/hobbes.H:6:
In file included from ../include/hobbes/eval/cc.H:13:
In file included from ../include/hobbes/eval/jitcc.H:9:
In file included from ../include/hobbes/util/llvm.H:19:
In file included from /home/chaz/.local/local/clang+llvm/include/llvm/IR/IRBuilder.h:33:
/home/chaz/.local/local/clang+llvm/include/llvm/IR/Instructions.h:2941:50: error: function 'setSuccessor' could be declared with attribute 'noreturn' [-Werror,-Wmissing-noreturn]
  void setSuccessor(unsigned idx, BasicBlock *B) {
                                                 ^
/home/chaz/.local/local/clang+llvm/include/llvm/IR/Instructions.h:4132:56: error: function 'setSuccessor' could be declared with attribute 'noreturn' [-Werror,-Wmissing-noreturn]
  void setSuccessor(unsigned idx, BasicBlock *NewSucc) {
                                                       ^
/home/chaz/.local/local/clang+llvm/include/llvm/IR/Instructions.h:4635:50: error: function 'setSuccessor' could be declared with attribute 'noreturn' [-Werror,-Wmissing-noreturn]
  void setSuccessor(unsigned idx, BasicBlock *B) {
                                                 ^
In file included from ../test/Definitions.C:2:
In file included from ../include/hobbes/hobbes.H:6:
../include/hobbes/eval/cc.H:329:26: error: unused parameter 'c' [-Werror,-Wunused-parameter]
    static T compile(cc* c, const str::seq& vns, const std::string& expr) {
                         ^
../include/hobbes/eval/cc.H:329:45: error: unused parameter 'vns' [-Werror,-Wunused-parameter]
    static T compile(cc* c, const str::seq& vns, const std::string& expr) {
                                            ^
../include/hobbes/eval/cc.H:329:69: error: unused parameter 'expr' [-Werror,-Wunused-parameter]
    static T compile(cc* c, const str::seq& vns, const std::string& expr) {
                                                                    ^
11 errors generated.
...

Originally posted by @Chaz6 in https://github.com/Morgan-Stanley/hobbes/issues/382#issuecomment-761621253

Thanks for working on this. I have checked out the latest commit from master but it still fails to build for me:-
[1/184] Building CXX object CMakeFiles/hobbes-test.dir/test/Existentials.C.o
FAILED: CMakeFiles/hobbes-test.dir/test/Existentials.C.o
/home/chaz/.local/local/clang+llvm/bin/clang++  -I/home/chaz/.local/local/clang+llvm/include -I../include -Werror=old-style-cast -Werror -Wall -Wextra -Winit-self -Wreturn-type -Wunused-variable -Wsign-compare
-Warray-bounds -Wunknown-pragmas -Wuninitialized -Wstrict-aliasing -Wunused-value -Wunused-label -Wswitch -Wcast-align -Wctor-dtor-privacy -Wmissing-noreturn -Wunused-parameter -Wreorder -O2   -D_GNU_SOURCE -D_
_STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -DPYTHON_EXECUTABLE="/home/chaz/.local/bin/python" -DSCRIPT_DIR="/home/chaz/git/github.com_Morgan-Stanley_hobbes/scripts/" -std=gnu++14 -MD -MT
 CMakeFiles/hobbes-test.dir/test/Existentials.C.o -MF CMakeFiles/hobbes-test.dir/test/Existentials.C.o.d -o CMakeFiles/hobbes-test.dir/test/Existentials.C.o -c ../test/Existentials.C
In file included from ../test/Existentials.C:2:
In file included from ../include/hobbes/hobbes.H:6:
In file included from ../include/hobbes/eval/cc.H:13:
In file included from ../include/hobbes/eval/jitcc.H:9:
In file included from ../include/hobbes/util/llvm.H:18:
In file included from /home/chaz/.local/local/clang+llvm/include/llvm/IR/DerivedTypes.h:23:
In file included from /home/chaz/.local/local/clang+llvm/include/llvm/IR/Type.h:17:
/home/chaz/.local/local/clang+llvm/include/llvm/ADT/APFloat.h:842:31: error: function 'APFloat' could be declared with attribute 'noreturn' [-Werror,-Wmissing-noreturn]
  APFloat() : U(IEEEdouble()) {
                              ^
In file included from ../test/Existentials.C:2:
In file included from ../include/hobbes/hobbes.H:6:
In file included from ../include/hobbes/eval/cc.H:13:
In file included from ../include/hobbes/eval/jitcc.H:9:
In file included from ../include/hobbes/util/llvm.H:19:
In file included from /home/chaz/.local/local/clang+llvm/include/llvm/IR/IRBuilder.h:22:
In file included from /home/chaz/.local/local/clang+llvm/include/llvm/IR/BasicBlock.h:22:
In file included from /home/chaz/.local/local/clang+llvm/include/llvm/IR/Instruction.h:22:
In file included from /home/chaz/.local/local/clang+llvm/include/llvm/IR/DebugLoc.h:17:
In file included from /home/chaz/.local/local/clang+llvm/include/llvm/IR/TrackingMDRef.h:16:
/home/chaz/.local/local/clang+llvm/include/llvm/IR/Metadata.h:95:49: error: function 'handleChangedOperand' could be declared with attribute 'noreturn' [-Werror,-Wmissing-noreturn]
  void handleChangedOperand(void *, Metadata *) {
                                                ^
/home/chaz/.local/local/clang+llvm/include/llvm/IR/Metadata.h:888:42: error: function 'operator delete' could be declared with attribute 'noreturn' [-Werror,-Wmissing-noreturn]
  void operator delete(void *, unsigned) {
                                         ^
/home/chaz/.local/local/clang+llvm/include/llvm/IR/Metadata.h:893:48: error: function 'operator delete' could be declared with attribute 'noreturn' [-Werror,-Wmissing-noreturn]
  void operator delete(void *, unsigned, bool) {
                                               ^
In file included from ../test/Existentials.C:2:
In file included from ../include/hobbes/hobbes.H:6:
In file included from ../include/hobbes/eval/cc.H:13:
In file included from ../include/hobbes/eval/jitcc.H:9:
In file included from ../include/hobbes/util/llvm.H:19:
In file included from /home/chaz/.local/local/clang+llvm/include/llvm/IR/IRBuilder.h:33:
/home/chaz/.local/local/clang+llvm/include/llvm/IR/Instructions.h:2941:50: error: function 'setSuccessor' could be declared with attribute 'noreturn' [-Werror,-Wmissing-noreturn]
  void setSuccessor(unsigned idx, BasicBlock *B) {
                                                 ^
/home/chaz/.local/local/clang+llvm/include/llvm/IR/Instructions.h:4132:56: error: function 'setSuccessor' could be declared with attribute 'noreturn' [-Werror,-Wmissing-noreturn]
  void setSuccessor(unsigned idx, BasicBlock *NewSucc) {
                                                       ^
/home/chaz/.local/local/clang+llvm/include/llvm/IR/Instructions.h:4635:50: error: function 'setSuccessor' could be declared with attribute 'noreturn' [-Werror,-Wmissing-noreturn]
  void setSuccessor(unsigned idx, BasicBlock *B) {
                                                 ^
7 errors generated.

Thanks for working on this. I have checked out the latest commit from master but it still fails to build for me:-
[1/184] Building CXX object CMakeFiles/hobbes-test.dir/test/Existentials.C.o
FAILED: CMakeFiles/hobbes-test.dir/test/Existentials.C.o
/home/chaz/.local/local/clang+llvm/bin/clang++  -I/home/chaz/.local/local/clang+llvm/include -I../include -Werror=old-style-cast -Werror -Wall -Wextra -Winit-self -Wreturn-type -Wunused-variable -Wsign-compare
-Warray-bounds -Wunknown-pragmas -Wuninitialized -Wstrict-aliasing -Wunused-value -Wunused-label -Wswitch -Wcast-align -Wctor-dtor-privacy -Wmissing-noreturn -Wunused-parameter -Wreorder -O2   -D_GNU_SOURCE -D_
_STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -DPYTHON_EXECUTABLE="/home/chaz/.local/bin/python" -DSCRIPT_DIR="/home/chaz/git/github.com_Morgan-Stanley_hobbes/scripts/" -std=gnu++14 -MD -MT
 CMakeFiles/hobbes-test.dir/test/Existentials.C.o -MF CMakeFiles/hobbes-test.dir/test/Existentials.C.o.d -o CMakeFiles/hobbes-test.dir/test/Existentials.C.o -c ../test/Existentials.C
In file included from ../test/Existentials.C:2:
In file included from ../include/hobbes/hobbes.H:6:
In file included from ../include/hobbes/eval/cc.H:13:
In file included from ../include/hobbes/eval/jitcc.H:9:
In file included from ../include/hobbes/util/llvm.H:18:
In file included from /home/chaz/.local/local/clang+llvm/include/llvm/IR/DerivedTypes.h:23:
In file included from /home/chaz/.local/local/clang+llvm/include/llvm/IR/Type.h:17:
/home/chaz/.local/local/clang+llvm/include/llvm/ADT/APFloat.h:842:31: error: function 'APFloat' could be declared with attribute 'noreturn' [-Werror,-Wmissing-noreturn]
  APFloat() : U(IEEEdouble()) {
                              ^
In file included from ../test/Existentials.C:2:
In file included from ../include/hobbes/hobbes.H:6:
In file included from ../include/hobbes/eval/cc.H:13:
In file included from ../include/hobbes/eval/jitcc.H:9:
In file included from ../include/hobbes/util/llvm.H:19:
In file included from /home/chaz/.local/local/clang+llvm/include/llvm/IR/IRBuilder.h:22:
In file included from /home/chaz/.local/local/clang+llvm/include/llvm/IR/BasicBlock.h:22:
In file included from /home/chaz/.local/local/clang+llvm/include/llvm/IR/Instruction.h:22:
In file included from /home/chaz/.local/local/clang+llvm/include/llvm/IR/DebugLoc.h:17:
In file included from /home/chaz/.local/local/clang+llvm/include/llvm/IR/TrackingMDRef.h:16:
/home/chaz/.local/local/clang+llvm/include/llvm/IR/Metadata.h:95:49: error: function 'handleChangedOperand' could be declared with attribute 'noreturn' [-Werror,-Wmissing-noreturn]
  void handleChangedOperand(void *, Metadata *) {
                                                ^
/home/chaz/.local/local/clang+llvm/include/llvm/IR/Metadata.h:888:42: error: function 'operator delete' could be declared with attribute 'noreturn' [-Werror,-Wmissing-noreturn]
  void operator delete(void *, unsigned) {
                                         ^
/home/chaz/.local/local/clang+llvm/include/llvm/IR/Metadata.h:893:48: error: function 'operator delete' could be declared with attribute 'noreturn' [-Werror,-Wmissing-noreturn]
  void operator delete(void *, unsigned, bool) {
                                               ^
In file included from ../test/Existentials.C:2:
In file included from ../include/hobbes/hobbes.H:6:
In file included from ../include/hobbes/eval/cc.H:13:
In file included from ../include/hobbes/eval/jitcc.H:9:
In file included from ../include/hobbes/util/llvm.H:19:
In file included from /home/chaz/.local/local/clang+llvm/include/llvm/IR/IRBuilder.h:33:
/home/chaz/.local/local/clang+llvm/include/llvm/IR/Instructions.h:2941:50: error: function 'setSuccessor' could be declared with attribute 'noreturn' [-Werror,-Wmissing-noreturn]
  void setSuccessor(unsigned idx, BasicBlock *B) {
                                                 ^
/home/chaz/.local/local/clang+llvm/include/llvm/IR/Instructions.h:4132:56: error: function 'setSuccessor' could be declared with attribute 'noreturn' [-Werror,-Wmissing-noreturn]
  void setSuccessor(unsigned idx, BasicBlock *NewSucc) {
                                                       ^
/home/chaz/.local/local/clang+llvm/include/llvm/IR/Instructions.h:4635:50: error: function 'setSuccessor' could be declared with attribute 'noreturn' [-Werror,-Wmissing-noreturn]
  void setSuccessor(unsigned idx, BasicBlock *B) {
                                                 ^
7 errors generated.

If I remove -Wmissing-noreturn then it does compile successfully. Does this need reporting upstream (to llvm)? It seems odd that this would happen.

If I remove -Wmissing-noreturn then it does compile successfully. Does this need reporting upstream (to llvm)? It seems odd that this would happen.

I spoke too soon! The linking failed with this output:-
libhobbes.a(jitcc.C.o):jitcc.C:typeinfo for hobbes::jitmm: error: undefined reference to 'typeinfo for llvm::SectionMemoryManager'
libhobbes.a(jitcc.C.o):jitcc.C:typeinfo for hobbes::LenWatch: error: undefined reference to 'typeinfo for llvm::JITEventListener'

I spoke too soon! The linking failed with this output:-
libhobbes.a(jitcc.C.o):jitcc.C:typeinfo for hobbes::jitmm: error: undefined reference to 'typeinfo for llvm::SectionMemoryManager'
libhobbes.a(jitcc.C.o):jitcc.C:typeinfo for hobbes::LenWatch: error: undefined reference to 'typeinfo for llvm::JITEventListener'

Are you able to write a Github actions workflow describing the steps to reproduce your build failures? If not, maybe you want to share detailed steps to reproduce this?
What version of clang are you using? it is unusual to have llvm builds in one's $HOME as you do here.

Are you able to write a Github actions workflow describing the steps to reproduce your build failures? If not, maybe you want to share detailed steps to reproduce this?
What version of clang are you using? it is unusual to have llvm builds in one's $HOME as you do here.

Sorry I do not know how to write a Github actions workflow. I am using LLVM 11.0.0 (I will upgrade to 11.0.1 later today) on a CentOS 7 64bit host (like RHEL). I keep all my build environment in $HOME so as not to interfere with the system.

Sorry I do not know how to write a Github actions workflow. I am using LLVM 11.0.0 (I will upgrade to 11.0.1 later today) on a CentOS 7 64bit host (like RHEL). I keep all my build environment in $HOME so as not to interfere with the system.

try the following 2 commands from within your Hobbes directory (it won't mess up with the rest of your system, I promise):
$ curl -L https://nixos.org/nix/install | sh
$ nix-build -A hobbesPackages.clang-8.hobbes

try the following 2 commands from within your Hobbes directory (it won't mess up with the rest of your system, I promise):
$ curl -L https://nixos.org/nix/install | sh
$ nix-build -A hobbesPackages.clang-8.hobbes

I have figured it out, LLVM needs to be built with LLVM_ENABLE_RTTI=ON and now I have been able to compile it from git with no problem.

I have figured it out, LLVM needs to be built with LLVM_ENABLE_RTTI=ON and now I have been able to compile it from git with no problem.

There is a test for this; the output of llvm-config --has-rtti should equal YES but in my case it was NO.

There is a test for this; the output of llvm-config --has-rtti should equal YES but in my case it was NO.

repo: morganstanley/hobbes


text:
the source project compile have some problems in my loca env;(mac os+vscode idea+ C)

hi, i have some problems when i compile the source code, those error like the blow. Maybe have some gammer error?
can you give me some help or advise, Thanks!
Compile Error:
In file included from /Users/lijian/Software/kafka_cpptest/modern-cpp-kafka-main/include/kafka/RdKafkaHelper.h:5:
/Users/lijian/Software/kafka_cpptest/modern-cpp-kafka-main/include/kafka/Types.h:141:32: error: 'auto' not
allowed in lambda parameter
[&ret](const auto& topic) {
^~~~
/Users/lijian/Software/kafka_cpptest/modern-cpp-kafka-main/include/kafka/Types.h:162:32: error: 'auto' not
allowed in lambda parameter
[&ret](const auto& tp) {
^~~~
/Users/lijian/Software/kafka_cpptest/modern-cpp-kafka-main/include/kafka/Types.h:183:32: error: 'auto' not
allowed in lambda parameter
[&ret](const auto& tp_o) {
In file included from /Users/lijian/Software/kafka_cpptest/modern-cpp-kafka-main/include/kafka/Error.h:5:
/Users/lijian/Software/kafka_cpptest/modern-cpp-kafka-main/include/kafka/RdKafkaHelper.h:42:49: error:
unknown type name 'rd_kafka_DeleteRecords_t'; did you mean 'rd_kafka_DeleteTopic_t'?
struct RkDeleteRecordsDeleter { void operator()(rd_kafka_DeleteRecords_t* p) { rd_kafka_DeleteReco...
^~~~~~~~~~~~~~~~~~~~~~~~
rd_kafka_DeleteTopic_t
/usr/local/include/librdkafka/rdkafka.h:5996:39: note: 'rd_kafka_DeleteTopic_t' declared here
typedef struct rd_kafka_DeleteTopic_s rd_kafka_DeleteTopic_t;

Hi, @jianali the headers only partially support C++14, -- GCC only (with optimization, e.g. -O2), https://github.com/morganstanley/modern-cpp-kafka#install
Please just try with C++17, which should fix your problem.

I have a similar issue unfortunately..
Using Ubuntu 20.04
librdkafka-dev version 1.2.1-1ubuntu1
Compiling with -std=c++17 would not solve the issue. Any help is much appreciated

I have a similar issue unfortunately.. Using Ubuntu 20.04 librdkafka-dev version 1.2.1-1ubuntu1 Compiling with -std=c++17 would not solve the issue. Any help is much appreciated

Could you please help attach the compile log which shows the build options clang++ were using? Thanks!

Thanks a lot for the prompt response! Here is the compile log:
gcc -std=c++17 -I include/ KafkaConsumer.cpp -lrdkafka++ -lrt -lpthread
In file included from include/kafka/Error.h:5,
                 from include/kafka/ConsumerCommon.h:5,
                 from include/kafka/KafkaConsumer.h:5,
                 from KafkaConsumer.cpp:1:
include/kafka/RdKafkaHelper.h:72:25: error: 'rd_kafka_DeleteRecords_t' has not been declared
   72 |         void operator()(rd_kafka_DeleteRecords_t *p) { rd_kafka_DeleteRecords_destroy(p); }
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~
include/kafka/RdKafkaHelper.h: In member function 'void kafka::RkDeleteRecordsDeleter::operator()(int*)':
include/kafka/RdKafkaHelper.h:72:56: error: 'rd_kafka_DeleteRecords_destroy' was not declared in this scope; did you mean 'rd_kafka_DeleteTopic_destroy'?
   72 |         void operator()(rd_kafka_DeleteRecords_t *p) { rd_kafka_DeleteRecords_destroy(p); }
      |                                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                                        rd_kafka_DeleteTopic_destroy
include/kafka/RdKafkaHelper.h: At global scope:
include/kafka/RdKafkaHelper.h:74:63: error: 'rd_kafka_DeleteRecords_t' was not declared in this scope; did you mean 'rd_kafka_DeleteTopic_t'?
   74 |     using rd_kafka_DeleteRecords_unique_ptr = std::unique_ptr<rd_kafka_DeleteRecords_t, RkDeleteRecordsDeleter>;
      |                                                               ^~~~~~~~~~~~~~~~~~~~~~~~
      |                                                               rd_kafka_DeleteTopic_t
include/kafka/RdKafkaHelper.h:74:111: error: template argument 1 is invalid
   74 |     using rd_kafka_DeleteRecords_unique_ptr = std::unique_ptr<rd_kafka_DeleteRecords_t, RkDeleteRecordsDeleter>;
      |                                                                                ^
include/kafka/RdKafkaHelper.h:78:25: error: 'rd_kafka_consumer_group_metadata_t' has not been declared
   78 |         void operator()(rd_kafka_consumer_group_metadata_t *p) { rd_kafka_consumer_group_metadata_destroy(p); }
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/kafka/RdKafkaHelper.h: In member function 'void kafka::RkConsumerGroupMetadataDeleter::operator()(int*)':
include/kafka/RdKafkaHelper.h:78:66: error: 'rd_kafka_consumer_group_metadata_destroy' was not declared in this scope
   78 |         void operator()(rd_kafka_consumer_group_metadata_t *p) { rd_kafka_consumer_group_metadata_destroy(p); }
      |                                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/kafka/RdKafkaHelper.h: At global scope:
include/kafka/RdKafkaHelper.h:80:73: error: 'rd_kafka_consumer_group_metadata_t' was not declared in this scope
   80 |     using rd_kafka_consumer_group_metadata_unique_ptr = std::unique_ptr<rd_kafka_consumer_group_metadata_t, RkConsumerGroupMetadataDeleter>;
      |                                                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/kafka/RdKafkaHelper.h:80:139: error: template argument 1 is invalid
   80 |     using rd_kafka_consumer_group_metadata_unique_ptr = std::unique_ptr<rd_kafka_consumer_group_metadata_t, RkConsumerGroupMetadataDeleter>;
      |                                                                                ^
include/kafka/RdKafkaHelper.h:82:32: error: variable or field 'RkErrorDeleter' declared void
   82 |     inline void RkErrorDeleter(rd_kafka_error_t *p) { rd_kafka_error_destroy(p); }
      |                                ^~~~~~~~~~~~~~~~
include/kafka/RdKafkaHelper.h:82:32: error: 'rd_kafka_error_t' was not declared in this scope; did you mean 'rd_kafka_errno'?
   82 |     inline void RkErrorDeleter(rd_kafka_error_t *p) { rd_kafka_error_destroy(p); }
      |                                ^~~~~~~~~~~~~~~~
      |                                rd_kafka_errno
include/kafka/RdKafkaHelper.h:82:50: error: 'p' was not declared in this scope
   82 |     inline void RkErrorDeleter(rd_kafka_error_t *p) { rd_kafka_error_destroy(p); }
      |                                                  ^
include/kafka/RdKafkaHelper.h:83:55: error: 'rd_kafka_error_t' was not declared in this scope; did you mean 'rd_kafka_errno'?
   83 |     using rd_kafka_error_shared_ptr = std::shared_ptr<rd_kafka_error_t>;
      |                                                       ^~~~~~~~~~~~~~~~
      |                                                       rd_kafka_errno
include/kafka/RdKafkaHelper.h:83:71: error: template argument 1 is invalid
   83 |     using rd_kafka_error_shared_ptr = std::shared_ptr<rd_kafka_error_t>;
      |                                                                       ^
In file included from include/kafka/ConsumerCommon.h:5,
                 from include/kafka/KafkaConsumer.h:5,
                 from KafkaConsumer.cpp:1:
include/kafka/Error.h:35:36: error: expected ')' before '*' token
   35 |     explicit Error(rd_kafka_error_t* error = nullptr): _rkError(error, RkErrorDeleter) {}
      |                   ~                ^
      |                                    )
In file included from include/kafka/ConsumerCommon.h:5,
                 from include/kafka/KafkaConsumer.h:5,
                 from KafkaConsumer.cpp:1:
include/kafka/Error.h:139:5: error: 'rd_kafka_error_shared_ptr' does not name a type
  139 |     rd_kafka_error_shared_ptr _rkError;     // For error with rich info
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/kafka/ConsumerCommon.h:5,
                 from include/kafka/KafkaConsumer.h:5,
                 from KafkaConsumer.cpp:1:
include/kafka/Error.h: In member function 'kafka::Error& kafka::Error::operator=(const kafka::Error&)':
include/kafka/Error.h:49:9: error: '_rkError' was not declared in this scope; did you mean 'Error'?
   49 |         _rkError.reset();
      |         ^~~~~~~~
      |         Error
In file included from include/kafka/ConsumerCommon.h:5,
                 from include/kafka/KafkaConsumer.h:5,
                 from KafkaConsumer.cpp:1:
include/kafka/Error.h: In member function 'int kafka::Error::value() const':
include/kafka/Error.h:83:33: error: '_rkError' was not declared in this scope; did you mean 'Error'?
   83 |         return static_cast<int>(_rkError ? rd_kafka_error_code(_rkError.get()) : _respErr);
      |                                 ^~~~~~~~
      |                                 Error
include/kafka/Error.h:83:44: error: 'rd_kafka_error_code' was not declared in this scope; did you mean 'rd_kafka_produce'?
   83 |         return static_cast<int>(_rkError ? rd_kafka_error_code(_rkError.get()) : _respErr);
      |                                            ^~~~~~~~~~~~~~~~~~~
      |                                            rd_kafka_produce
include/kafka/Error.h: In member function 'std::string kafka::Error::message() const':
include/kafka/Error.h:92:19: error: '_rkError' was not declared in this scope; did you mean 'Error'?
   92 |                  (_rkError ? rd_kafka_error_string(_rkError.get()) : rd_kafka_err2str(_respErr));
      |                   ^~~~~~~~
      |                   Error
include/kafka/Error.h:92:30: error: 'rd_kafka_error_string' was not declared in this scope; did you mean 'rd_kafka_event_error_string'?
   92 |                  (_rkError ? rd_kafka_error_string(_rkError.get()) : rd_kafka_err2str(_respErr));
      |                              ^~~~~~~~~~~~~~~~~~~~~
      |                              rd_kafka_event_error_string
include/kafka/Error.h: In member function 'bool kafka::Error::isFatal() const':
include/kafka/Error.h:115:17: error: '_rkError' was not declared in this scope; did you mean 'Error'?
  115 |         return  _rkError ? rd_kafka_error_is_fatal(_rkError.get()) : _isFatal;
      |                 ^~~~~~~~
      |                 Error
include/kafka/Error.h:115:28: error: 'rd_kafka_error_is_fatal' was not declared in this scope; did you mean 'rd_kafka_event_error_is_fatal'?
  115 |         return  _rkError ? rd_kafka_error_is_fatal(_rkError.get()) : _isFatal;
      |                            ^~~~~~~~~~~~~~~~~~~~~~~
      |                            rd_kafka_event_error_is_fatal
include/kafka/Error.h: In member function 'Optional<bool> kafka::Error::isRetriable() const':
include/kafka/Error.h:123:16: error: '_rkError' was not declared in this scope; did you mean 'Error'?
  123 |         return _rkError ? rd_kafka_error_is_retriable(_rkError.get()) : _isRetriable;
      |                ^~~~~~~~
      |                Error
include/kafka/Error.h:123:27: error: 'rd_kafka_error_is_retriable' was not declared in this scope
  123 |         return _rkError ? rd_kafka_error_is_retriable(_rkError.get()) : _isRetriable;
      |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
include/kafka/Error.h: In member function 'bool kafka::Error::transactionRequiresAbort() const':
include/kafka/Error.h:135:16: error: '_rkError' was not declared in this scope; did you mean 'Error'?
  135 |         return _rkError ? rd_kafka_error_txn_requires_abort(_rkError.get()) : false;
      |                ^~~~~~~~
      |                Error
include/kafka/Error.h:135:27: error: 'rd_kafka_error_txn_requires_abort' was not declared in this scope
  135 |         return _rkError ? rd_kafka_error_txn_requires_abort(_rkError.get()) : false;
      |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/kafka/KafkaConsumer.h:5,
                 from KafkaConsumer.cpp:1:
include/kafka/ConsumerCommon.h: At global scope:
include/kafka/ConsumerCommon.h:56:74: error: expected ')' before '*' token
   56 |         explicit ConsumerGroupMetadata(rd_kafka_consumer_group_metadata_t* p): _rkConsumerGroupMetadata(p) {}
      |                                       ~                                  ^
      |                                                                          )
include/kafka/ConsumerCommon.h:58:15: error: 'rd_kafka_consumer_group_metadata_t' does not name a type
   58 |         const rd_kafka_consumer_group_metadata_t*  rawHandle() const { return _rkConsumerGroupMetadata.get(); }
      |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/kafka/ConsumerCommon.h:61:9: error: 'rd_kafka_consumer_group_metadata_unique_ptr' does not name a type; did you mean 'rd_kafka_metadata_unique_ptr'?
   61 |         rd_kafka_consumer_group_metadata_unique_ptr _rkConsumerGroupMetadata;
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |         rd_kafka_metadata_unique_ptr
In file included from include/kafka/KafkaConsumer.h:9,
                 from KafkaConsumer.cpp:1:
include/kafka/KafkaClient.h: In static member function 'static void kafka::clients::KafkaClient::errorCallback(rd_kafka_t*, int, const char*, void*)':
include/kafka/KafkaClient.h:523:11: error: no matching function for call to 'kafka::Error::Error()'
  523 |     Error error;
      |           ^~~~~
In file included from include/kafka/ConsumerCommon.h:5,
                 from include/kafka/KafkaConsumer.h:5,
                 from KafkaConsumer.cpp:1:
include/kafka/Error.h:42:5: note: candidate: 'kafka::Error::Error(const kafka::Error&)'
   42 |     Error(const Error& error) { *this = error; }
      |     ^~~~~
include/kafka/Error.h:42:5: note:   candidate expects 1 argument, 0 provided
include/kafka/Error.h:39:5: note: candidate: 'kafka::Error::Error(rd_kafka_resp_err_t, std::string, bool)'
   39 |     Error(rd_kafka_resp_err_t respErr, std::string message, bool fatal = false)
      |     ^~~~~
include/kafka/Error.h:39:5: note:   candidate expects 3 arguments, 0 provided
include/kafka/Error.h:37:14: note: candidate: 'kafka::Error::Error(rd_kafka_resp_err_t)'
   37 |     explicit Error(rd_kafka_resp_err_t respErr): _respErr(respErr) {}
      |              ^~~~~
include/kafka/Error.h:37:14: note:   candidate expects 1 argument, 0 provided
In file included from KafkaConsumer.cpp:1:
include/kafka/KafkaConsumer.h: In member function 'void kafka::clients::KafkaConsumer::changeAssignment(kafka::clients::KafkaConsumer::PartitionsRebalanceEvent, const TopicPartitions&)':
include/kafka/KafkaConsumer.h:566:11: error: no matching function for call to 'kafka::Error::Error()'
  566 |     Error result;
      |           ^~~~~~
In file included from include/kafka/ConsumerCommon.h:5,
                 from include/kafka/KafkaConsumer.h:5,
                 from KafkaConsumer.cpp:1:
include/kafka/Error.h:42:5: note: candidate: 'kafka::Error::Error(const kafka::Error&)'
   42 |     Error(const Error& error) { *this = error; }
      |     ^~~~~
include/kafka/Error.h:42:5: note:   candidate expects 1 argument, 0 provided
include/kafka/Error.h:39:5: note: candidate: 'kafka::Error::Error(rd_kafka_resp_err_t, std::string, bool)'
   39 |     Error(rd_kafka_resp_err_t respErr, std::string message, bool fatal = false)
      |     ^~~~~
include/kafka/Error.h:39:5: note:   candidate expects 3 arguments, 0 provided
include/kafka/Error.h:37:14: note: candidate: 'kafka::Error::Error(rd_kafka_resp_err_t)'
   37 |     explicit Error(rd_kafka_resp_err_t respErr): _respErr(respErr) {}
      |              ^~~~~
include/kafka/Error.h:37:14: note:   candidate expects 1 argument, 0 provided
In file included from KafkaConsumer.cpp:1:
include/kafka/KafkaConsumer.h:582:29: error: 'rd_kafka_incremental_assign' was not declared in this scope
  582 |             result = Error{ rd_kafka_incremental_assign(getClientHandle(), rk_tps.get()) };
      |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~
include/kafka/KafkaConsumer.h:582:90: error: no matching function for call to 'kafka::Error::Error(<brace-enclosed initializer list>)'
  582 |             result = Error{ rd_kafka_incremental_assign(getClientHandle(), rk_tps.get()) };
      |                                                                                ^
In file included from include/kafka/ConsumerCommon.h:5,
                 from include/kafka/KafkaConsumer.h:5,
                 from KafkaConsumer.cpp:1:
include/kafka/Error.h:42:5: note: candidate: 'kafka::Error::Error(const kafka::Error&)'
   42 |     Error(const Error& error) { *this = error; }
      |     ^~~~~
include/kafka/Error.h:42:5: note:   conversion of argument 1 would be ill-formed:
include/kafka/Error.h:39:5: note: candidate: 'kafka::Error::Error(rd_kafka_resp_err_t, std::string, bool)'
   39 |     Error(rd_kafka_resp_err_t respErr, std::string message, bool fatal = false)
      |     ^~~~~
include/kafka/Error.h:39:5: note:   candidate expects 3 arguments, 1 provided
include/kafka/Error.h:37:14: note: candidate: 'kafka::Error::Error(rd_kafka_resp_err_t)'
   37 |     explicit Error(rd_kafka_resp_err_t respErr): _respErr(respErr) {}
      |              ^~~~~
include/kafka/Error.h:37:14: note:   conversion of argument 1 would be ill-formed:
In file included from KafkaConsumer.cpp:1:
include/kafka/KafkaConsumer.h:598:29: error: 'rd_kafka_incremental_unassign' was not declared in this scope
  598 |             result = Error{ rd_kafka_incremental_unassign(getClientHandle(), rk_tps.get()) };
      |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/kafka/KafkaConsumer.h:598:92: error: no matching function for call to 'kafka::Error::Error(<brace-enclosed initializer list>)'
  598 |             result = Error{ rd_kafka_incremental_unassign(getClientHandle(), rk_tps.get()) };
      |                                                                                ^
In file included from include/kafka/ConsumerCommon.h:5,
                 from include/kafka/KafkaConsumer.h:5,
                 from KafkaConsumer.cpp:1:
include/kafka/Error.h:42:5: note: candidate: 'kafka::Error::Error(const kafka::Error&)'
   42 |     Error(const Error& error) { *this = error; }
      |     ^~~~~
include/kafka/Error.h:42:5: note:   conversion of argument 1 would be ill-formed:
include/kafka/Error.h:39:5: note: candidate: 'kafka::Error::Error(rd_kafka_resp_err_t, std::string, bool)'
   39 |     Error(rd_kafka_resp_err_t respErr, std::string message, bool fatal = false)
      |     ^~~~~
include/kafka/Error.h:39:5: note:   candidate expects 3 arguments, 1 provided
include/kafka/Error.h:37:14: note: candidate: 'kafka::Error::Error(rd_kafka_resp_err_t)'
   37 |     explicit Error(rd_kafka_resp_err_t respErr): _respErr(respErr) {}
      |              ^~~~~
include/kafka/Error.h:37:14: note:   conversion of argument 1 would be ill-formed:
In file included from KafkaConsumer.cpp:1:
include/kafka/KafkaConsumer.h: In member function 'void kafka::clients::KafkaConsumer::commit(const TopicPartitionOffsets&, kafka::clients::KafkaConsumer::CommitType)':
include/kafka/KafkaConsumer.h:760:23: error: no matching function for call to 'kafka::Error::Error(<brace-enclosed initializer list>)'
  760 |         error = Error{};
      |                       ^
In file included from include/kafka/ConsumerCommon.h:5,
                 from include/kafka/KafkaConsumer.h:5,
                 from KafkaConsumer.cpp:1:
include/kafka/Error.h:42:5: note: candidate: 'kafka::Error::Error(const kafka::Error&)'
   42 |     Error(const Error& error) { *this = error; }
      |     ^~~~~
include/kafka/Error.h:42:5: note:   candidate expects 1 argument, 0 provided
include/kafka/Error.h:39:5: note: candidate: 'kafka::Error::Error(rd_kafka_resp_err_t, std::string, bool)'
   39 |     Error(rd_kafka_resp_err_t respErr, std::string message, bool fatal = false)
      |     ^~~~~
include/kafka/Error.h:39:5: note:   candidate expects 3 arguments, 0 provided
include/kafka/Error.h:37:14: note: candidate: 'kafka::Error::Error(rd_kafka_resp_err_t)'
   37 |     explicit Error(rd_kafka_resp_err_t respErr): _respErr(respErr) {}
      |              ^~~~~
include/kafka/Error.h:37:14: note:   candidate expects 1 argument, 0 provided
In file included from KafkaConsumer.cpp:1:
include/kafka/KafkaConsumer.h: In member function 'void kafka::clients::KafkaConsumer::onRebalance(rd_kafka_resp_err_t, rd_kafka_topic_partition_list_t*)':
include/kafka/KafkaConsumer.h:915:36: error: 'rd_kafka_rebalance_protocol' was not declared in this scope
  915 |         if (const char* protocol = rd_kafka_rebalance_protocol(getClientHandle()))
      |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~
include/kafka/KafkaConsumer.h: In member function 'kafka::clients::consumer::ConsumerGroupMetadata kafka::clients::KafkaConsumer::groupMetadata()':
include/kafka/KafkaConsumer.h:987:44: error: 'rd_kafka_consumer_group_metadata' was not declared in this scope
  987 |     return consumer::ConsumerGroupMetadata{rd_kafka_consumer_group_metadata(getClientHandle())};
      |                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Hi, @rbngz I see, your problem was caused by gcc (the compiler for c, not for c++), why not call g++ instead?

@kenneth-jia good point! I have tried that earlier but received the same output:
g++ -std=c++17 -I include/ KafkaConsumer.cpp -lrdkafka++ -lrt -lpthread
In file included from include/kafka/Error.h:5,
                 from include/kafka/ConsumerCommon.h:5,
                 from include/kafka/KafkaConsumer.h:5,
                 from KafkaConsumer.cpp:1:
include/kafka/RdKafkaHelper.h:72:25: error: 'rd_kafka_DeleteRecords_t' has not been declared
   72 |         void operator()(rd_kafka_DeleteRecords_t *p) { rd_kafka_DeleteRecords_destroy(p); }
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~
include/kafka/RdKafkaHelper.h: In member function 'void kafka::RkDeleteRecordsDeleter::operator()(int*)':
include/kafka/RdKafkaHelper.h:72:56: error: 'rd_kafka_DeleteRecords_destroy' was not declared in this scope; did you mean 'rd_kafka_DeleteTopic_destroy'?
   72 |         void operator()(rd_kafka_DeleteRecords_t *p) { rd_kafka_DeleteRecords_destroy(p); }
      |                                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                                        rd_kafka_DeleteTopic_destroy
include/kafka/RdKafkaHelper.h: At global scope:
include/kafka/RdKafkaHelper.h:74:63: error: 'rd_kafka_DeleteRecords_t' was not declared in this scope; did you mean 'rd_kafka_DeleteTopic_t'?
   74 |     using rd_kafka_DeleteRecords_unique_ptr = std::unique_ptr<rd_kafka_DeleteRecords_t, RkDeleteRecordsDeleter>;
      |                                                               ^~~~~~~~~~~~~~~~~~~~~~~~
      |                                                               rd_kafka_DeleteTopic_t
include/kafka/RdKafkaHelper.h:74:111: error: template argument 1 is invalid
   74 |     using rd_kafka_DeleteRecords_unique_ptr = std::unique_ptr<rd_kafka_DeleteRecords_t, RkDeleteRecordsDeleter>;
      |                                                                                ^
include/kafka/RdKafkaHelper.h:78:25: error: 'rd_kafka_consumer_group_metadata_t' has not been declared
   78 |         void operator()(rd_kafka_consumer_group_metadata_t *p) { rd_kafka_consumer_group_metadata_destroy(p); }
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/kafka/RdKafkaHelper.h: In member function 'void kafka::RkConsumerGroupMetadataDeleter::operator()(int*)':
include/kafka/RdKafkaHelper.h:78:66: error: 'rd_kafka_consumer_group_metadata_destroy' was not declared in this scope
   78 |         void operator()(rd_kafka_consumer_group_metadata_t *p) { rd_kafka_consumer_group_metadata_destroy(p); }
      |                                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/kafka/RdKafkaHelper.h: At global scope:
include/kafka/RdKafkaHelper.h:80:73: error: 'rd_kafka_consumer_group_metadata_t' was not declared in this scope
   80 |     using rd_kafka_consumer_group_metadata_unique_ptr = std::unique_ptr<rd_kafka_consumer_group_metadata_t, RkConsumerGroupMetadataDeleter>;
      |                                                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/kafka/RdKafkaHelper.h:80:139: error: template argument 1 is invalid
   80 |     using rd_kafka_consumer_group_metadata_unique_ptr = std::unique_ptr<rd_kafka_consumer_group_metadata_t, RkConsumerGroupMetadataDeleter>;
      |                                                                                ^
include/kafka/RdKafkaHelper.h:82:32: error: variable or field 'RkErrorDeleter' declared void
   82 |     inline void RkErrorDeleter(rd_kafka_error_t *p) { rd_kafka_error_destroy(p); }
      |                                ^~~~~~~~~~~~~~~~
include/kafka/RdKafkaHelper.h:82:32: error: 'rd_kafka_error_t' was not declared in this scope; did you mean 'rd_kafka_errno'?
   82 |     inline void RkErrorDeleter(rd_kafka_error_t *p) { rd_kafka_error_destroy(p); }
      |                                ^~~~~~~~~~~~~~~~
      |                                rd_kafka_errno
include/kafka/RdKafkaHelper.h:82:50: error: 'p' was not declared in this scope
   82 |     inline void RkErrorDeleter(rd_kafka_error_t *p) { rd_kafka_error_destroy(p); }
      |                                                  ^
include/kafka/RdKafkaHelper.h:83:55: error: 'rd_kafka_error_t' was not declared in this scope; did you mean 'rd_kafka_errno'?
   83 |     using rd_kafka_error_shared_ptr = std::shared_ptr<rd_kafka_error_t>;
      |                                                       ^~~~~~~~~~~~~~~~
      |                                                       rd_kafka_errno
include/kafka/RdKafkaHelper.h:83:71: error: template argument 1 is invalid
   83 |     using rd_kafka_error_shared_ptr = std::shared_ptr<rd_kafka_error_t>;
      |                                                                       ^
In file included from include/kafka/ConsumerCommon.h:5,
                 from include/kafka/KafkaConsumer.h:5,
                 from KafkaConsumer.cpp:1:
include/kafka/Error.h:35:36: error: expected ')' before '*' token
   35 |     explicit Error(rd_kafka_error_t* error = nullptr): _rkError(error, RkErrorDeleter) {}
      |                   ~                ^
      |                                    )
In file included from include/kafka/ConsumerCommon.h:5,
                 from include/kafka/KafkaConsumer.h:5,
                 from KafkaConsumer.cpp:1:
include/kafka/Error.h:139:5: error: 'rd_kafka_error_shared_ptr' does not name a type
  139 |     rd_kafka_error_shared_ptr _rkError;     // For error with rich info
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/kafka/ConsumerCommon.h:5,
                 from include/kafka/KafkaConsumer.h:5,
                 from KafkaConsumer.cpp:1:
include/kafka/Error.h: In member function 'kafka::Error& kafka::Error::operator=(const kafka::Error&)':
include/kafka/Error.h:49:9: error: '_rkError' was not declared in this scope; did you mean 'Error'?
   49 |         _rkError.reset();
      |         ^~~~~~~~
      |         Error
In file included from include/kafka/ConsumerCommon.h:5,
                 from include/kafka/KafkaConsumer.h:5,
                 from KafkaConsumer.cpp:1:
include/kafka/Error.h: In member function 'int kafka::Error::value() const':
include/kafka/Error.h:83:33: error: '_rkError' was not declared in this scope; did you mean 'Error'?
   83 |         return static_cast<int>(_rkError ? rd_kafka_error_code(_rkError.get()) : _respErr);
      |                                 ^~~~~~~~
      |                                 Error
include/kafka/Error.h:83:44: error: 'rd_kafka_error_code' was not declared in this scope; did you mean 'rd_kafka_produce'?
   83 |         return static_cast<int>(_rkError ? rd_kafka_error_code(_rkError.get()) : _respErr);
      |                                            ^~~~~~~~~~~~~~~~~~~
      |                                            rd_kafka_produce
include/kafka/Error.h: In member function 'std::string kafka::Error::message() const':
include/kafka/Error.h:92:19: error: '_rkError' was not declared in this scope; did you mean 'Error'?
   92 |                  (_rkError ? rd_kafka_error_string(_rkError.get()) : rd_kafka_err2str(_respErr));
      |                   ^~~~~~~~
      |                   Error
include/kafka/Error.h:92:30: error: 'rd_kafka_error_string' was not declared in this scope; did you mean 'rd_kafka_event_error_string'?
   92 |                  (_rkError ? rd_kafka_error_string(_rkError.get()) : rd_kafka_err2str(_respErr));
      |                              ^~~~~~~~~~~~~~~~~~~~~
      |                              rd_kafka_event_error_string
include/kafka/Error.h: In member function 'bool kafka::Error::isFatal() const':
include/kafka/Error.h:115:17: error: '_rkError' was not declared in this scope; did you mean 'Error'?
  115 |         return  _rkError ? rd_kafka_error_is_fatal(_rkError.get()) : _isFatal;
      |                 ^~~~~~~~
      |                 Error
include/kafka/Error.h:115:28: error: 'rd_kafka_error_is_fatal' was not declared in this scope; did you mean 'rd_kafka_event_error_is_fatal'?
  115 |         return  _rkError ? rd_kafka_error_is_fatal(_rkError.get()) : _isFatal;
      |                            ^~~~~~~~~~~~~~~~~~~~~~~
      |                            rd_kafka_event_error_is_fatal
include/kafka/Error.h: In member function 'Optional<bool> kafka::Error::isRetriable() const':
include/kafka/Error.h:123:16: error: '_rkError' was not declared in this scope; did you mean 'Error'?
  123 |         return _rkError ? rd_kafka_error_is_retriable(_rkError.get()) : _isRetriable;
      |                ^~~~~~~~
      |                Error
include/kafka/Error.h:123:27: error: 'rd_kafka_error_is_retriable' was not declared in this scope
  123 |         return _rkError ? rd_kafka_error_is_retriable(_rkError.get()) : _isRetriable;
      |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
include/kafka/Error.h: In member function 'bool kafka::Error::transactionRequiresAbort() const':
include/kafka/Error.h:135:16: error: '_rkError' was not declared in this scope; did you mean 'Error'?
  135 |         return _rkError ? rd_kafka_error_txn_requires_abort(_rkError.get()) : false;
      |                ^~~~~~~~
      |                Error
include/kafka/Error.h:135:27: error: 'rd_kafka_error_txn_requires_abort' was not declared in this scope
  135 |         return _rkError ? rd_kafka_error_txn_requires_abort(_rkError.get()) : false;
      |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/kafka/KafkaConsumer.h:5,
                 from KafkaConsumer.cpp:1:
include/kafka/ConsumerCommon.h: At global scope:
include/kafka/ConsumerCommon.h:56:74: error: expected ')' before '*' token
   56 |         explicit ConsumerGroupMetadata(rd_kafka_consumer_group_metadata_t* p): _rkConsumerGroupMetadata(p) {}
      |                                       ~                                  ^
      |                                                                          )
include/kafka/ConsumerCommon.h:58:15: error: 'rd_kafka_consumer_group_metadata_t' does not name a type
   58 |         const rd_kafka_consumer_group_metadata_t*  rawHandle() const { return _rkConsumerGroupMetadata.get(); }
      |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/kafka/ConsumerCommon.h:61:9: error: 'rd_kafka_consumer_group_metadata_unique_ptr' does not name a type; did you mean 'rd_kafka_metadata_unique_ptr'?
   61 |         rd_kafka_consumer_group_metadata_unique_ptr _rkConsumerGroupMetadata;
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |         rd_kafka_metadata_unique_ptr
In file included from include/kafka/KafkaConsumer.h:9,
                 from KafkaConsumer.cpp:1:
include/kafka/KafkaClient.h: In static member function 'static void kafka::clients::KafkaClient::errorCallback(rd_kafka_t*, int, const char*, void*)':
include/kafka/KafkaClient.h:523:11: error: no matching function for call to 'kafka::Error::Error()'
  523 |     Error error;
      |           ^~~~~
In file included from include/kafka/ConsumerCommon.h:5,
                 from include/kafka/KafkaConsumer.h:5,
                 from KafkaConsumer.cpp:1:
include/kafka/Error.h:42:5: note: candidate: 'kafka::Error::Error(const kafka::Error&)'
   42 |     Error(const Error& error) { *this = error; }
      |     ^~~~~
include/kafka/Error.h:42:5: note:   candidate expects 1 argument, 0 provided
include/kafka/Error.h:39:5: note: candidate: 'kafka::Error::Error(rd_kafka_resp_err_t, std::string, bool)'
   39 |     Error(rd_kafka_resp_err_t respErr, std::string message, bool fatal = false)
      |     ^~~~~
include/kafka/Error.h:39:5: note:   candidate expects 3 arguments, 0 provided
include/kafka/Error.h:37:14: note: candidate: 'kafka::Error::Error(rd_kafka_resp_err_t)'
   37 |     explicit Error(rd_kafka_resp_err_t respErr): _respErr(respErr) {}
      |              ^~~~~
include/kafka/Error.h:37:14: note:   candidate expects 1 argument, 0 provided
In file included from KafkaConsumer.cpp:1:
include/kafka/KafkaConsumer.h: In member function 'void kafka::clients::KafkaConsumer::changeAssignment(kafka::clients::KafkaConsumer::PartitionsRebalanceEvent, const TopicPartitions&)':
include/kafka/KafkaConsumer.h:566:11: error: no matching function for call to 'kafka::Error::Error()'
  566 |     Error result;
      |           ^~~~~~
In file included from include/kafka/ConsumerCommon.h:5,
                 from include/kafka/KafkaConsumer.h:5,
                 from KafkaConsumer.cpp:1:
include/kafka/Error.h:42:5: note: candidate: 'kafka::Error::Error(const kafka::Error&)'
   42 |     Error(const Error& error) { *this = error; }
      |     ^~~~~
include/kafka/Error.h:42:5: note:   candidate expects 1 argument, 0 provided
include/kafka/Error.h:39:5: note: candidate: 'kafka::Error::Error(rd_kafka_resp_err_t, std::string, bool)'
   39 |     Error(rd_kafka_resp_err_t respErr, std::string message, bool fatal = false)
      |     ^~~~~
include/kafka/Error.h:39:5: note:   candidate expects 3 arguments, 0 provided
include/kafka/Error.h:37:14: note: candidate: 'kafka::Error::Error(rd_kafka_resp_err_t)'
   37 |     explicit Error(rd_kafka_resp_err_t respErr): _respErr(respErr) {}
      |              ^~~~~
include/kafka/Error.h:37:14: note:   candidate expects 1 argument, 0 provided
In file included from KafkaConsumer.cpp:1:
include/kafka/KafkaConsumer.h:582:29: error: 'rd_kafka_incremental_assign' was not declared in this scope
  582 |             result = Error{ rd_kafka_incremental_assign(getClientHandle(), rk_tps.get()) };
      |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~
include/kafka/KafkaConsumer.h:582:90: error: no matching function for call to 'kafka::Error::Error(<brace-enclosed initializer list>)'
  582 |             result = Error{ rd_kafka_incremental_assign(getClientHandle(), rk_tps.get()) };
      |                                                                                ^
In file included from include/kafka/ConsumerCommon.h:5,
                 from include/kafka/KafkaConsumer.h:5,
                 from KafkaConsumer.cpp:1:
include/kafka/Error.h:42:5: note: candidate: 'kafka::Error::Error(const kafka::Error&)'
   42 |     Error(const Error& error) { *this = error; }
      |     ^~~~~
include/kafka/Error.h:42:5: note:   conversion of argument 1 would be ill-formed:
include/kafka/Error.h:39:5: note: candidate: 'kafka::Error::Error(rd_kafka_resp_err_t, std::string, bool)'
   39 |     Error(rd_kafka_resp_err_t respErr, std::string message, bool fatal = false)
      |     ^~~~~
include/kafka/Error.h:39:5: note:   candidate expects 3 arguments, 1 provided
include/kafka/Error.h:37:14: note: candidate: 'kafka::Error::Error(rd_kafka_resp_err_t)'
   37 |     explicit Error(rd_kafka_resp_err_t respErr): _respErr(respErr) {}
      |              ^~~~~
include/kafka/Error.h:37:14: note:   conversion of argument 1 would be ill-formed:
In file included from KafkaConsumer.cpp:1:
include/kafka/KafkaConsumer.h:598:29: error: 'rd_kafka_incremental_unassign' was not declared in this scope
  598 |             result = Error{ rd_kafka_incremental_unassign(getClientHandle(), rk_tps.get()) };
      |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/kafka/KafkaConsumer.h:598:92: error: no matching function for call to 'kafka::Error::Error(<brace-enclosed initializer list>)'
  598 |             result = Error{ rd_kafka_incremental_unassign(getClientHandle(), rk_tps.get()) };
      |                                                                                ^
In file included from include/kafka/ConsumerCommon.h:5,
                 from include/kafka/KafkaConsumer.h:5,
                 from KafkaConsumer.cpp:1:
include/kafka/Error.h:42:5: note: candidate: 'kafka::Error::Error(const kafka::Error&)'
   42 |     Error(const Error& error) { *this = error; }
      |     ^~~~~
include/kafka/Error.h:42:5: note:   conversion of argument 1 would be ill-formed:
include/kafka/Error.h:39:5: note: candidate: 'kafka::Error::Error(rd_kafka_resp_err_t, std::string, bool)'
   39 |     Error(rd_kafka_resp_err_t respErr, std::string message, bool fatal = false)
      |     ^~~~~
include/kafka/Error.h:39:5: note:   candidate expects 3 arguments, 1 provided
include/kafka/Error.h:37:14: note: candidate: 'kafka::Error::Error(rd_kafka_resp_err_t)'
   37 |     explicit Error(rd_kafka_resp_err_t respErr): _respErr(respErr) {}
      |              ^~~~~
include/kafka/Error.h:37:14: note:   conversion of argument 1 would be ill-formed:
In file included from KafkaConsumer.cpp:1:
include/kafka/KafkaConsumer.h: In member function 'void kafka::clients::KafkaConsumer::commit(const TopicPartitionOffsets&, kafka::clients::KafkaConsumer::CommitType)':
include/kafka/KafkaConsumer.h:760:23: error: no matching function for call to 'kafka::Error::Error(<brace-enclosed initializer list>)'
  760 |         error = Error{};
      |                       ^
In file included from include/kafka/ConsumerCommon.h:5,
                 from include/kafka/KafkaConsumer.h:5,
                 from KafkaConsumer.cpp:1:
include/kafka/Error.h:42:5: note: candidate: 'kafka::Error::Error(const kafka::Error&)'
   42 |     Error(const Error& error) { *this = error; }
      |     ^~~~~
include/kafka/Error.h:42:5: note:   candidate expects 1 argument, 0 provided
include/kafka/Error.h:39:5: note: candidate: 'kafka::Error::Error(rd_kafka_resp_err_t, std::string, bool)'
   39 |     Error(rd_kafka_resp_err_t respErr, std::string message, bool fatal = false)
      |     ^~~~~
include/kafka/Error.h:39:5: note:   candidate expects 3 arguments, 0 provided
include/kafka/Error.h:37:14: note: candidate: 'kafka::Error::Error(rd_kafka_resp_err_t)'
   37 |     explicit Error(rd_kafka_resp_err_t respErr): _respErr(respErr) {}
      |              ^~~~~
include/kafka/Error.h:37:14: note:   candidate expects 1 argument, 0 provided
In file included from KafkaConsumer.cpp:1:
include/kafka/KafkaConsumer.h: In member function 'void kafka::clients::KafkaConsumer::onRebalance(rd_kafka_resp_err_t, rd_kafka_topic_partition_list_t*)':
include/kafka/KafkaConsumer.h:915:36: error: 'rd_kafka_rebalance_protocol' was not declared in this scope
  915 |         if (const char* protocol = rd_kafka_rebalance_protocol(getClientHandle()))
      |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~
include/kafka/KafkaConsumer.h: In member function 'kafka::clients::consumer::ConsumerGroupMetadata kafka::clients::KafkaConsumer::groupMetadata()':
include/kafka/KafkaConsumer.h:987:44: error: 'rd_kafka_consumer_group_metadata' was not declared in this scope
  987 |     return consumer::ConsumerGroupMetadata{rd_kafka_consumer_group_metadata(getClientHandle())};
      |                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Take rd_kafka_DeleteRecords_t  for example, the interface was not available until https://github.com/edenhill/librdkafka/releases/v1.6.0
Please download the source code of a newer librdkafka release (e.g. v1.8.2), then configure/make/make install. After that, your project should be OK to go with the modern-cpp-kafka API`.

Thanks for pointing that out! The compilation worked after installing librdkafka v1.8.2 from source and running:
./configure --install-deps
make
make install
Thanks again for the help. Have a nice day

source: gharchive/issue

authors: jianali kenneth-jia rbngz

repo: morganstanley/modern-cpp-kafka

license_type: permissive

license_source: github-api


text:
fixed rate irm

Fixed rate IRM for Morpho Blue. Anybody can set the rate for a market but it can be set only once. Typical use case is that the market creator batches the creation of the market with the fixed rate IRM with the setting of the rate they want for it on the IRM.
Note that this IRM probably doesn't make sense alone, as a lending pool with fixed IRM faces illiquidity risks. It will be used to experiment with different stuff  like terms on blue.
This IRM makes market creators vulnerable to a griefing attack: for an oracle, you can set the rate for all the markets that make sense with this oracle, making these markets that could have been created in the future ususable. Meaning that now to create a market with the same pair of assets (with a different LLTV for example) you might have to re-deploy the oracle because a malicious actor could have set the rate already.

Tests are failing :/

not anymore :-) (weird rounding in adaptive curve irm when fuzzing that i can't reproduce locally, but not impact). Will open an issue to investigate

source: gharchive/pull-request

repo: morpho-org/morpho-blue-irm

license: MIT


text:
Installing dependencies for make ppanalysis

Is it possible to automatically add libraries by make?
For Ubuntu 18.04, before make ppanalysis one has to:
$ sudo apt-get install libcgal-dev
$ sudo apt-get install libccfits-dev

In file included from ppanalysis.cpp:11:0:
voronoi.hpp:11:10: fatal error: CGAL/Delaunay_triangulation_2.h: No such file or directory
 #include <CGAL/Delaunay_triangulation_2.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [ppanalysis.o] Error 1

/usr/bin/ld: cannot find -lCCfits
/usr/bin/ld: cannot find -lcfitsio
collect2: error: ld returned 1 exit status
make: *** [ppanalysis] Error 1

Hi!
Unfortunately, the actual commands and package names depend a lot on your
distribution.  Also, I don't want to overcomplicate the Makefile (it should
remain simple to understand and modify).
Your point is good though, we should add a few lines to the documentation.
I guess it would be extremely cool to have pre-built deb packages for the
casual user.  We didn't get around to set that up yet...
All the best,
Sebastian
On Thu, May 21, 2020 at 04:03:31AM -0700, Qin Yu wrote:

Is it possible to automatically add libraries by make?
For Ubuntu 18.04, before make ppanalysis one has to:
$ sudo apt-get install libcgal-dev
$ sudo apt-get install libccfits-dev

In file included from ppanalysis.cpp:11:0:
voronoi.hpp:11:10: fatal error: CGAL/Delaunay_triangulation_2.h: No such file or directory
 #include <CGAL/Delaunay_triangulation_2.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [ppanalysis.o] Error 1

/usr/bin/ld: cannot find -lCCfits
/usr/bin/ld: cannot find -lcfitsio
collect2: error: ld returned 1 exit status
make: *** [ppanalysis] Error 1

--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/morphometry/papaya2/issues/4

--
Best regards,               | Theoretische Physik 1, 02.573
Sebastian Kapfer          | FAU Erlangen
| Staudtstr. 7, 91058 Erlangen, Germany
| Phone: +49.160.9577.6436
| https://theorie1.physik.fau.de/people/skapfer/
| GPG: ED891239B22DD0D516F2D9247554541B84406C3F

Hi,
I've added some hints to the troubleshooting section on
https://morphometry.org/software/papaya2/
Hopefully that improves user experience a little.
Also FITS is now only needed for Banana, all the other tools
don't need it anyhow.
Cheers,
Sebastian
On Thu, May 21, 2020 at 04:03:31AM -0700, Qin Yu wrote:

Is it possible to automatically add libraries by make?
For Ubuntu 18.04, before make ppanalysis one has to:
$ sudo apt-get install libcgal-dev
$ sudo apt-get install libccfits-dev

In file included from ppanalysis.cpp:11:0:
voronoi.hpp:11:10: fatal error: CGAL/Delaunay_triangulation_2.h: No such file or directory
 #include <CGAL/Delaunay_triangulation_2.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [ppanalysis.o] Error 1

/usr/bin/ld: cannot find -lCCfits
/usr/bin/ld: cannot find -lcfitsio
collect2: error: ld returned 1 exit status
make: *** [ppanalysis] Error 1

--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/morphometry/papaya2/issues/4

--
Best regards,               | Theoretische Physik 1, 02.573
Sebastian Kapfer          | FAU Erlangen
| Staudtstr. 7, 91058 Erlangen, Germany
| Phone: +49.160.9577.6436
| https://theorie1.physik.fau.de/people/skapfer/
| GPG: ED891239B22DD0D516F2D9247554541B84406C3F

For what it's worth, we re-did the Make/configure system. We tried to keep it simple, so no Cmake and stuff, but it should have better instructions and error messages now. Let me know if there's still issues!

authors: qin-yu skapfer


text:
Remove deprecated usage of generated_jit and additional cleanup

This PR replaces the deprecated generated_jit function with the overload mechanism. Additionally, it adds docstrings for most functions and removes the automatic thread count modification in the parallel query functions in favor of an explicit modification in the user's code.

This should also close #27.

repo: mortacious/numba-kdtree


text:
On the fly sample filtering and limiting of datasets

🚀 Feature Request
I would like to be able to filter my data based on a callable that returns true/false and limit to a specific length like huggingface datasets (https://huggingface.co/docs/datasets/process#select-and-filter)
Motivation
I want to be able to experiment with different parts of my dataset without creating a whole new MDS dataset for each scenario. I am working with sequence data (not text) and would like to use a filter like this for example to only keep sequences of length > 10
[Optional] Implementation
I am working with sequence data (not text) and would like to use a filter like this for example to only keep sequences of length > 10
new_dataset = dataset.filter(lambda x: len(x["sequence"]) > 10)
Or test on the first 1M samples
new_dataset = dataset.limit(1_000_000)
Would also welcome any suggested ways of going about this in the best way in the meantime!

Hi, @ssharpe42, thanks for filing this feature request. Is your dataset saved locally (Built on top of a map-style dataset) for you to filter the dataset on the fly? Or are you using streaming mode in the HuggingFace dataset, built on top of IterableDataset?
For now, you would have to create the MDS dataset with filter logic and then use the dataset mixing (checkout class Stream) to mix the dataset on the fly. For example, create an MDS dataset for sequence_len<10, create another MDS dataset for sequence_len<10,>20, another for sequence_len>20,<30 and so on. After that, instantiate one Stream for each MDS dataset and pass the sequence of Stream dataset to StreamingDataset.

Yes, we are currently using HF dataset in streaming mode since we have datasets that are 200GB on disk in parquet files. Trying to find a way to more efficiently iterate through them when we have many GPU nodes as currently the bottleneck seems to be the dataloader workers having to iterate through the dataset in each process, skipping samples that are reserved for other ranks.
In general, we want the ability to arbitrarily drop samples (filter out) based on conditions as we iterate through. Not sure if all of these needs are feasible together, but open to other ideas how to solve it! So I guess based on what you are saying the best way to go about it now is to precompute MDS format datasets given our desired filters.

@ssharpe42 Sorry for my late response. For now, precompute MDS format datasets given our desired filters is definitely one of the ways.
@knighton Do you have any suggestions here?

repo: mosaicml/streaming


text:
Add two shuffling algos: naive (globally) and py1b (fixed-size blocks).

Description of changes:
py1b is a shuffling algorithm that performs the final shuffle over fixed-size blocks instead of intra-shard like py1s. These units are presumably larger or much larger than single shards, leading to better shuffledness at the cost of having to download more shards to make progress.
naive is a shuffling algorithm that naively shuffles all-to-all. This is useful for single-node training on small data, where you want the most random shuffle possible. Statistically, this algorithm will result in all nodes downloading all shards, with those downloads all happening at the start of the epoch, bringing training to a crawl.
Also update the default shuffle algo from py1s to py1b.
Issue #, if available:

Merge Checklist:
Put an x without space in the boxes that apply. If you are unsure about any checklist, please don't hesitate to ask. We are here to help! This is simply a reminder of what we are going to look for before merging your pull request.
General

[ ] I have read the contributor guidelines
[ ] This is a documentation change or typo fix. If so, skip the rest of this checklist.
[ ] I certify that the changes I am introducing will be backward compatible, and I have discussed concerns about this, if any, with the MosaicML team.
[ ] I have updated any necessary documentation, including README and API docs (if appropriate).

Tests

[ ] I ran pre-commit on my change. (check out the pre-commit section of prerequisites)
[ ] I have added tests that prove my fix is effective or that my feature works (if appropriate).
[ ] I ran the tests locally to make sure it pass. (check out testing)
[ ] I have added unit and/or integration tests as appropriate to ensure backward compatibility of the changes.

If we change the default to py1b, will all the StreamingDataset unit tests (aka for correctness, presence of samples, etc) rerun with py1b ? That would be great if so.

If we change the default to py1b, will all the StreamingDataset unit tests (aka for correctness, presence of samples, etc) rerun with py1b ? That would be great if so.

pytest is happy :)

Based on the offline discussion, James will be creating a follow up PR to address the above two comments

Add a one to two line of brief statement explaining when to use which naive, py1b, py1s, py2s algorithm in the StreamingDataset class documentation.
Add a unit test for each shuffling algorithm (naive, py1b, py1s, py2s) to validate the output sample order with an expected sample order.

authors: abhi-mosaic karan6181 knighton


text:
Can not build -tags wander in Apple Silicon chip.

According to the document, run the following command to build WASM on Layotto:
go build -tags wasmer -o ./layotto ./cmd/layotto/main.go

build failed and got an error:
➜  layotto git:(update_wasmer_go) ✗ go build -v -tags wasmer -o ./layotto ./cmd/layotto/main.go
github.com/wasmerio/wasmer-go/wasmer
# github.com/wasmerio/wasmer-go/wasmer
ld: library not found for -lwasmer
clang: error: linker command failed with exit code 1 (use -v to see invocation)

@khotyn i use the same command with u , doesn't occur the error, can you provider the verison of layotto and golang, by the way the wasmer-go to 1.0.4 package imported by mosn, add this package in layotto with indirect maybe no good method, an pr for mosn should be better.

authors: khotyn wenxuwan

repo: mosn/layotto


text:
[BUG] cannot go get -u github.com/motemen/ghq

% go get -u  github.com/motemen/ghq
# github.com/motemen/ghq/utils
.gvm/pkgsets/go1.10/global/src/github.com/motemen/ghq/utils/log.go:10:19: too few values in struct initializer

Use new constructor for logger #104

Thanks, shoud be fixed by merging #104.

authors: kawakami-o3 kazu motemen

repo: motemen/ghq

license: mit

license_source: bigquery


text:
Improve stubs quality

Follow up PR with #16 with the goal of improving the quality of the stubs
This mainly focuses on ensuring all the arguments are named properly instead of simply being named arg0, arg1, etc.
for that I'm simply using py::arg("arg_name") in order to let pybind know about the argument names
I'm also extracting the docstrings out of the function definition like you've started doing @mottosso to try and have some consistency.
I've noticed two mild issues with this so far

On windows I get warnings like this cmdc\src\MFnDagNode.inl(21): warning C4005: '_doc_child': macro redefinition. I'm thinking of naming the variables like this instead to avoid redefinitions _doc_FnDagNode_child.
On multiline docstrings, the stubs end up with the \
I haven't found a way in C++ to not use those characters.
Worst case scenario I can scrape them from the generated stubs before writing the file
An example of the stubs with the \ left in

class DagPath():
    def extendToShapeDirectlyBelow(self, index: int) -> None:
        """
        This method is used if the end of the path is a transform and there are shapes directly below the transform.\
        The shape to extend to is set by passing in an appropriate index parameter.\
        Use the `numberOfShapesDirectlyBelow()` method to determine how many shapes are below
        """

Other than that, the stubs are looking pretty good, I just need to do that on the remaining files before merging

On windows I get warnings like this

Oooh, yes of course. Defines all happen within the same translation unit, and since all of cmdc is one big giant translation unit, they will collide.

I'm thinking of naming the variables like this instead to avoid redefinitions _doc_FnDagNode_child.

Yes, let's do it this way. Although I'm not 100% happy with using #define, we're forced to include those aweful backslashes, which make it less inviting to actually edit that docstring and make it better. In this form, I expect we'll simply leave them as is for all time which is bad.
But, I can't think of anything better at this point, but keep an eye out for something even more readable and editable.

On multiline docstrings, the stubs end up with the \

Yes, you also noticed haha.

Worst case scenario I can scrape them from the generated stubs before writing the file

Wait, are you saying the \ gets included in the actual docstring? :O I expect these should only escape the newline that comes after, but now that I think of it; we want those newlines as part of the docstring, like any normal Python docstring of 80 char max. Now I'm not entirely sure what to expect anymore. :S
Perhaps an even better reason to think of another way..

Wait, are you saying the \ gets included in the actual docstring? :O

Yup, the only way I've found where they don't end up in the docstring is this which isn't exactly better haha
#define _doc_extendToShapeDirectlyBelow "This method is used if the end of the path is a transform and there are shapes directly below the transform.\n" \
"The shape to extend to is set by passing in an appropriate index parameter.\n" \
"Use the `numberOfShapesDirectlyBelow()` method to determine how many shapes are below\n"

Ah yes, good find. That is better IMO, once you also indent the hanging lines, such that the line up vertically. This makes it very explicit what goes where.

Sounds good, I'll go with that then 👍

That's mostly everything done here
@mottosso let me know if this format for the docstrings suits you, I've set up the multiline docstrings like that, I felt it was more readable and would make more sense  to judge the length of the lines though I haven't done any work to make them fit in 80 characters. just moved them as is.
#define _doc_FnDagNode_getConnectedSetsAndMembers \
"Returns a tuple containing an array of sets and an array of the\n"\
"components of the DAG object which are in those sets. If the entire object is in a set, then the corresponding entry in the comps array will have no elements in it.\n"

There are still 11 arg0 in the stubs at the moment but they're on properties so I don't think it matters much. I'll have a look tomorrow if that's fixable. If not I think this is in a good state to be merged

Ah, will need to setup the release properly as well

It looks allright. There was one more alternative I had in mind, not sure what to think of it yet.
#define _doc_DagPath_exclusiveMatrixInverse "Returns the inverse of exclusiveMatrix()."

#define _doc_DagPath_extendToShape "If the object at the end of this path is a transform \n" \
                                   "and there is a shape node directly beneath it in the \n" \
                                   "hierarchy, then the path is extended to that geometry \n" \
                                   "node.\n" \
                                   "NOTE: This method will fail if there multiple shapes \n" \
                                   "below the transform."

#define _doc_DagPath_extendToShapeDirectlyBelow "This method is used if the end of the path is a transform and there are \n" \
                                                "shapes directly below the transform.\n" \
                                                "The shape to extend to is set by passing in an appropriate index parameter.\n" \
                                                "Use the `numberOfShapesDirectlyBelow()` method to determine how many shapes \n" \
                                                "are below"

The trick being that we'll have to keep an eye out for making sure the lines are ~70 chars long, plus however long the indentation is. But this I think could help clean up that top section, and clearly separate the defines from the comment. What do you think?

I feel like this is going to make keeping consistent line length awkward because of the differences in the #define statement length
It does look less cluttered though.
I think I'm leaning more towards my solution but I don't have a super strong opinion there. As long as we're consistent, it's good with me.

Good point. Maybe this?
#define _doc_DagPath_exclusiveMatrixInverse \
    "Returns the inverse of exclusiveMatrix()."

#define _doc_DagPath_extendToShape \
    "If the object at the end of this path is a transform \n" \
    "and there is a shape node directly beneath it in the \n" \
    "hierarchy, then the path is extended to that geometry \n" \
    "node.\n" \
    "NOTE: This method will fail if there multiple shapes \n" \
    "below the transform."

#define _doc_DagPath_extendToShapeDirectlyBelow \
    "This method is used if the end of the path is a transform and there are \n" \
    "shapes directly below the transform.\n" \
    "The shape to extend to is set by passing in an appropriate index parameter.\n" \
    "Use the `numberOfShapesDirectlyBelow()` method to determine how many shapes \n" \
    "are below"

That initial indent can help structure things, and now they are all equal regardless of variable length.

Yeah I like that, best of both worlds 👍

@mottosso I think we're good now
again, hoping the release modification works without testing

Let's go!

authors: Muream mottosso

repo: mottosso/cmdc


text:
what is 'hostGraphs'?

hello
I solved most of them.
It cannot proceed due to the message below.
What did I miss?

2021-10-06 16:45:10 : > Received 12788 bytes
2021-10-06 16:45:10 : > Saved to /usr/share/zabbix/images/zabbix_graph_1880.1633506310-10m.png
2021-10-06 16:45:10 : !! (8) "Undefined variable: hostGraphs" at line #1185 of "/usr/share/zabbix/mailGraph.php"
2021-10-06 16:45:10 : !! (2) "sizeof(): Parameter must be an array or an object that implements Countable" at line #1185 of "/usr/share/zabbix/mailGraph.php"
2021-10-06 16:45:10 : # Setting up mailer
00:00:00.525 [Unknown] MailGraph notification failed : SyntaxError: invalid json (at offset 10)

Hi, apologies for the late response. I was kept busy by my main job as Enterprise Architect in some deals.
The main code has been rewritten to facilitate a major change in Zabbix 5.4 as well as to fix some obvious issues that I did not catch earlier and from other feedback.
Can I ask you to upgrade the mailGraph.php to version 2.x? (no other changes were made, only the main code has changed).
I would like you to re-verify your issue with the new code.
Kind regards, Mark

In case of further issues, please raise a new issue. Closing for now assuming al was sorted with the previous code updates.

authors: moudsen qkrqkstm

repo: moudsen/mailGraph


text:
pkg.main, pkg.module are incompatible, so require("quickselect") behaves differently under Webpack

In Node, require("quickselect") returns the function quickselect, but in Webpack, require("quickselect") returns a module { default: quickselect }. This means a quickselect dependent can’t be compatible with both environments without contortions.
$ echo 'console.log(require("quickselect"))' > src.js
$ npm i quickselect webpack webpack-cli
$ node src.js
[Function: quickselect]
$ npx webpack -d
$ node dist/main.js
Object [Module] { default: [Getter] }

This is because Node is using pkg.main (quickselect.js) and Webpack is using pkg.module (index.js).
This problem is called out in the Rollup documentation:

Note: There are some tools such as Babel, TypeScript, Webpack, and @rollup/plugin-commonjs that are capable of resolving a CommonJS require(...) call with an ES module. If you are generating CommonJS output that is meant to be interchangeable with ESM output for those tools, you should always use named export mode. The reason is that most of those tools will by default return the namespace of an ES module on require where the default export is the .default property.

This was previously touched on in #6, but only in the context of the current quickselect in Webpack being incompatible with an old quickselect in Webpack (resolved by bumping the major version), not the current quickselect in Webpack being incompatible with the current quickselect in Node (still an issue).
Three potential solutions are:

use named export mode, so require("quickselect").default would work everywhere; or
add quickselect.default = quickselect for compatibility; or
remove pkg.module.

To be honest, my preferred solution would be to not support the "require in Webpack" case at all, and leave things as is. I still strongly believe this is a major mistake on the Webpack side (using the module entry point for modules that are loaded with require) which the maintainers frustratingly refused to fix, putting the burden for this mess on maintainers of all other open source projects with dual exports.

Annoyance at Webpack is understandable, but I don’t think it had a better option. Using pkg.module for import and pkg.main for require could result in two independent copies of that module being bundled, which at best leads to bloat, and at worst unexpectedly bifurcates its mutable state. Using pkg.module for require but auto-resolving default would break modules with both default and non-default exports.
Perhaps this problem could have been anticipated at the specification level when ES6 modules were being designed, but that ship has sailed. :neutral_face:
Rollup does the same thing as Webpack.
$ npm i quickselect rollup @rollup/plugin-commonjs @rollup/plugin-node-resolve
$ echo 'console.log(require("quickselect"))' > src.js
$ npx rollup src.js -p node-resolve -p commonjs --format cjs --file out.js
$ node out.js
[Object: null prototype] { default: [Function: quickselect] }

authors: andersk mourner

repo: mourner/quickselect

license: ISC


text:
Consider using a Bot Account to post command response

E.g. /gifs could use a Bot Account to show a more suitable username and icon then System.

Good idea, implemented in release v1.3.0

authors: hanzei moussetc

repo: moussetc/mattermost-plugin-giphy


text:
port verifier metering

Motivation
Ports over verifier metering from https://github.com/move-language/move/pull/950
Next step is to test the logic and pare back what we don't need
Have you read the Contributing Guidelines on pull requests?
Yes
Test Plan
Existing tests

is this effectively off right now? I wonder if we want to commit this and if so it has to be off. and is this ready to go in?

Yes it will be off when we pick it up in Sui. And it is ready to go in. We will iterate on it as we go.

repo: move-language/move


text:
Add support for registry suggestions

This adds suggestions from the registry to the cargo vet and cargo vet suggest suggestion output. This is done by fetching the registry and the corresponding audits files when generating suggestions, and comparing the suggestion output from before and after to see if it would make an improvement.
Currently this adds no information to the JSON output to encode the registry suggestion information, though we may want to encode it somehow in the future.
Fixes https://github.com/mozilla/cargo-vet/issues/104

Builds on top of #433, so leaving as a draft until that is merged.

Also requesting a review from @bholley to look over the ux

repo: mozilla/cargo-vet


text:
Use setTimeout to fix race with prompt.

Fixes #112 for me. I still was not able to fully track down where this issue is coming from. Everything seems okay on our side so I'm thinking it's in the read module, but I'm not sure it's worth spending more time on it.

Looks good to me as a temporary solution. I'd still investigate this as #113 (which is a real world issue) could be related.

authors: brendandahl marco-c

repo: mozilla/oghliner


text:
Issue in pdf rendering, while using gradient fill in pdf.

Attach (recommended) or Link to PDF file here:
Configuration:

Web browser and its version: chrome,firebox..etc
Operating system and its version: mac,linux,window...etc
PDF.js version: all version
Is a browser extension: no

Steps to reproduce the problem:

upload the given pdf.
2.Render in pdfjs

What is the expected behavior?

What went wrong? image border colour changed

original pdf:
[pdf with gradient fill.pdf](https://github.com/mozilla/pdf.js/files/11880979/pdf.with.gradient.
original pptx:
Presentation with Gradient Fill.pptx
fill.pdf)

Web browser and its version: chrome,firebox..etc
Operating system and its version: mac,linux,window...etc
PDF.js version: all version

Please remember to provide actual version numbers, since "all version" unfortunately isn't really helpful.

WFM, using PDF.js version 3.8.107 [03059e1f8] in Firefox Nightly 116.0a1 on Windows 11.
This was most likely fixed by PR #16106, which is present in the current versions; please find the latest releases at https://mozilla.github.io/pdf.js/getting_started/#download

authors: Snuffleupagus sathishsakthi-ss


text:
Javascript error in full screen: PDFViewer_setCurrentPageNumber: "X" is out of bounds.

Occurs when viewing any PDF.
Configuration:

Web browser and its version: Chrome (Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36)
Operating system and its version: Windows 10
PDF.js version: Latest (occurs on demo)

Steps to reproduce the problem:

Open any pdf file with pdfjs (or go to demo: https://mozilla.github.io/pdf.js/web/viewer.html)
Click into full screen / presentation mode.
Keep clicking on page to go to the next page. Once you click on the final page, you'll get a javascript error in your console: "PDFViewer_setCurrentPageNumber: "X" is out of bounds" for each click, where X is the number of the last page + 1.

What is the expected behavior?
No javascript error occurring.
What went wrong?
Javascript error: "PDFViewer_setCurrentPageNumber: "X" is out of bounds" for each click.
Thankfully this doesn't break any functionality, just produces an error in the console.

From looking at the code, perhaps this is intentional. Just seems a bit odd to me to produce a console error for standard user behaviour.

Closing since this is fixed in the pull request above. Thank you for the bug report!

authors: jamesburke-examtime timvandermeij


text:
For embedded TrueType fonts without included ToUnicode/Encoding data, attempt to improve text selection by using the platformID in the cmap table to amend the toUnicode map (issue 5423)

Note: This depends on PR #7550.
Fixes #5423.

It seems (perhaps unsurprisingly) that this may actually cause more issues than it fixes, hence closing for now.


text:
The script to copy information from duplicate bugs to the bugs they have been duplicated to should not revert signature changes

Jens removed a signature, because it is invalid (I'll file a separate issue about that): https://bugzilla.mozilla.org/show_bug.cgi?id=1435343#c90
Then right after, bugbug added the same signature right back. It would be better if it didn't just flip the signatures right back after somebody changed them.

Moved to the autonag repository as the problem is not in bugbug.

I'm unsure whether we should actually do this, or if we should keep the same information across bugs in the same "duplicate group".

@marco-c should we do this as part of #1760? If we merge copy_duplicate_info into duplicate_copy_metadata, this will be automatically solved.

Sounds good!

This is very rare though, so let's only do it if it's super quick.

authors: amccreight marco-c suhaibmujahid

repo: mozilla/relman-auto-nag


text:
Look into asar for the packaged builds

If nothing else extracting all those node_modules takes forever, putting it all into asar might speed things up a lot.

See also https://github.com/mozilla/tofino/issues/87 ?

Uhh yes, that

authors: Mossop victorporof

repo: mozilla/tofino


text:
Remove drag and drop functionality from tabs, as we're unsure if we w…

…ant this, and it's broken currently anyway. Fixes #284. r=bgrins

Coverage increased (+3.08%) to 46.082% when pulling a5da6a24cf318f81c6f0ec8ac3cff2261fd582ca on jsantell:remove-drag-drop into ccd795d7ad498eed6211e3f481deaa8fa3fe74f0 on mozilla:master.

Works for me

authors: bgrins coveralls jsantell


text:
Fix npm task commands documented in README.md

Just cloned the repo and tried running through the tasks in the README. Looks like they're a bit off with respect to package.json and npm scripts.

Looks good, thanks @lmorchard !

authors: jsantell lmorchard


text:
Not marked as compatible with Android on addons.mozzila.org

It should be marked as compatible with Android so that it will show up when searching addons.mozilla.org with an Android user agent.

Fixed. Thanks for filing!

repo: mozilla/video-bg-play


text:
Adds annotation to make commands tag_release and deploy_release.

r? @jasonthomas

r+

authors: chuckharmston jasonthomas

repo: mozilla/zamboni


text:
Reconnect sticks to the last known connection point and does not use additional connection points

Is it possible to connect to more than one node? We'd like to run a cluster of disque nodes, and currently it looks like we can only pass a single URI to the DisqueClient.

You can pass multiple connection points encapsulated within the DisqueURI.
There is only one connection at a time, the hosts are used as HA failover
hosts. If a connection goes down, another host is used for reconnect. I'm
open for discussion how to balance load amongst different hosts from the
client perspective. Use the scheme
disque://[password@]host[:port][,host2[:port2]][,hostN[:port2N]]
to specify multiple hosts.
Robert Gründler notifications@github.com schrieb am Fr., 21. Aug. 2015 um
13:30:

Is it possible to connect to more than one node? We'd like to run a
cluster of disque nodes, and currently it looks like we can only pass a
single URI to the DisqueClient.
—
Reply to this email directly or view it on GitHub
https://github.com/mp911de/spinach/issues/7.

Alright, we'll give that a try. Thanks a lot for the fast response.

I've tried the following setup:

2 Nodes running in a vagrant box on different ports
The client has been setup with the URI disque://192.168.205.10:7711,192.168.205.10:7712
The 2 nodes run clustered (disque -p 7711 cluster meet 127.0.0.1 7712)

When start the application, the client seems to connect to the first node running on 7711. Now when i stop that node, i'm seeing this in the logs:
2015-08-21 16:18:09.239 DEBUG c.l.redis.protocol.ConnectionWatchdog    : Reconnecting, last destination was /192.168.205.10:7711
2015-08-21 16:18:09.239 DEBUG c.l.redis.protocol.ConnectionWatchdog    : Cannot connect: java.net.ConnectException: Connection refused: /192.168.205.10:7711
2015-08-21 16:18:09.239 DEBUG c.l.redis.protocol.ConnectionWatchdog    : scheduleReconnect()

The client seems to try to reconnect to the same node over and over, without ever trying the 2nd node.
Is there anything we might configure additionally to the disque uri?

You've done everything right. I'll label the issue as bug then.
Robert Gründler notifications@github.com schrieb am Fr., 21. Aug. 2015 um
16:23:

I've tried the following setup:

2 Nodes running in a vagrant box on different ports
The client has been setup with the URI disque://192.168.205.10:7711,
192.168.205.10:7712
The 2 nodes run clustered (disque -p 7711 cluster meet 127.0.0.1 7712
)

When start the application, the client seems to connect to the first node
running on 7711. Now when i stop that node, i'm seeing this in the logs:
2015-08-21 16:18:09.239 DEBUG c.l.redis.protocol.ConnectionWatchdog    : Reconnecting, last destination was /192.168.205.10:7711
2015-08-21 16:18:09.239 DEBUG c.l.redis.protocol.ConnectionWatchdog    : Cannot connect: java.net.ConnectException: Connection refused: /192.168.205.10:7711
2015-08-21 16:18:09.239 DEBUG c.l.redis.protocol.ConnectionWatchdog    : scheduleReconnect()
The client seems to try to reconnect to the same node over and over,
without ever trying the 2nd node.
Is there anything we might configure additionally to the disque uri?
—
Reply to this email directly or view it on GitHub
https://github.com/mp911de/spinach/issues/7#issuecomment-133441147.

Thanks. Let me know if i can provide more details to help debugging.

Fixed, uploaded spinach-0.2-SNAPSHOT to https://oss.sonatype.org/content/repositories/snapshots/. Please retest.

Great, that fixed it. Failover works now, thanks a lot!

Is there another release planned in the near future, or should we stick to the SNAPSHOT repo?

It depends on how you define near future. I need to implement https://github.com/mp911de/spinach/issues/5 to publish a 0.2 release. I'm targeting Sep 7 for releasing 0.2 unless some blocker bugs cross the way. Feedback appreciated.

Great, thanks for the info.

Would creating a minor release be much of a hassle for you? We're working on an apache-camel component which uses spinach, and it would be great to have failover support.
Another question: Would you accept a PR implementing JMX support for spinach?

Ok, I'll release a 0.1.1 later this day.
What do you want to expose by JMX? I'm thinking a while about a statistics publisher to expose latencies and so forth. You can catch me on IRC (freenode) or Gitter (https://gitter.im/mp911de/lettuce) for a chat

@pulse00 Just released https://github.com/mp911de/spinach/releases/tag/0.1.1 Should be available on mvn central in a couple of hours

Superb, thanks!


text:
Berichte exportieren

Bericht soll einsehbar sein --> Exportieren in PDF Format (dafür ebenfalls Button implementieren)

Bitte jegliche Extensions, die noch zusätzlich installiert werden müssen, irgendwo festhalten. Das muss alles für die Abnahme aufbereitet werden.


text:
🛑 DBPERU is down

In 333375f, DBPERU (https://www.dbperu.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: DBPERU is back up in fdff299 after 11 minutes.

repo: mperezdbperu/dbperu


text:
Sine channel

Flow in a sinusoidal channel (MPCD geometry) is being worked on, and will be targeted for HOOMD 3.x.

Closed via #53

repo: mphowardlab/azplugins


text:
Avoid error in windows due to temp file being locked

In the process to use hie-bios on ghc i hit a problem when the hie-bios script tried to write in %HIE_BIOS_OUTPUT$: the file was locked by the executable and the script could not write in it

As usual in posis systems the lock works in a way the process started by hie-bios can write

Now the file es created but it is not opened until the process has used it. It is not deleted auto when it finishes but i thin kit is no a big problem, being a temporal file (but i could add a deleting)
I've changed the handling of %HIE_BIOS_OUTPUT$` to honour the possible previous value set by the user: maybe it can be used if users pnly have permissions over concrete directories or they want to keep the compiler args in a file controled by them

This will leak bios-output files into TMP. You need to clean up the temporary file after the cradle has finished running.

@mpickering done! it is clearner now

@mpickering @fendor i think it is done, thanks for the review and suggestions.
I tested the last version in my win 10 with the ghc config and it works: it uses the file pointed by HIE_BIOS_OUTPUT and a temp file (like before) if it is not

Thanks LGTM. Over to you @fendor

Thanks!, only a correction to my previous comments for the shake of being precise:  with the change from withSystemTempDirectory to withSystemFileDirectory the behaviour is the same as before the pr and the file is always created.
So the check for the existence of the file had no sense anymore (again like before the pr) and it is well removed.
However, the file can be empty and it would no trigger any error. I've checked it sending the output of hadrian/hie-bios.bat to nul and running hie-bios check ghc\Main.hs to see the temp file was created but compiler options are empty.
That is the reason that stack path call is succesful although it does not write anything to $HIE_BIOS_OUTPUT.

authors: jneira mpickering

repo: mpickering/hie-bios


text:
Settting effort in SEUS; typo?

@JWMorley See here: https://github.com/mpinsky/OceanAdapt/blob/master/complete_r_script.R#L296-L297
In other places you referenced the COLLECTIONNUMBER, but here you did EVENTNAME for the same type of correction. Was that intentional?
Need to know for trawlData: https://github.com/rBatt/trawlData/issues/6

I am out of the office until 11/9/15.
Your message was received and I will read it when I return. Any future
messages from you between now and when I return will be read at that
time also, but you will not receive any more automatic replies to that
effect.

Also, for one of those event names I don't get any rows returned (i.e., the EVENTMENT doesn't exist in my data set??); for the other, I do get some rows.
Relates to rBatt/trawlData#6

This is intentional. seus has paired hauls, two COLLECTIONNUMBER per
EVENTNAME. In come cases only one of those paired tows needed fixing. In
others there was no EFFORT data for either COLLECTIONNUMBER, so I fixed
the EVENTNAME to get both hauls. I believe I calculated effort based on
start and end gps points.
Jim

@JWMorley See here:
https://github.com/mpinsky/OceanAdapt/blob/master/complete_r_script.R#L296-L297
In other places you referenced the COLLECTIONNUMBER, but here you did
EVENTNAME for the same type of correction. Was that intentional?
Need to know for trawlData: https://github.com/rBatt/trawlData/issues/6

Reply to this email directly or view it on GitHub:
https://github.com/mpinsky/OceanAdapt/issues/44

authors: JWMorley ljmarxen rBatt

repo: mpinsky/OceanAdapt