zeromq / libzmq

ZeroMQ core engine in C++, implements ZMTP/3.1
https://www.zeromq.org
Mozilla Public License 2.0
9.67k stars 2.35k forks source link

A clean room re-implementation of zmq_proxy_steerable() #4598

Closed brettviren closed 12 months ago

brettviren commented 12 months ago

Here is my attempt to provide #4597

This is my first real dive into the internals of libzmq so there may be some problems that need to be ironed out.

bluca commented 12 months ago
../../src/proxy.cpp:231:27: error: suggest braces around initialization of subobject [-Werror,-Wmissing-braces]
    stats_proxy stats = { 0 };
                          ^
                          {}
../../src/proxy.cpp:231:27: error: suggest braces around initialization of subobject [-Werror,-Wmissing-braces]
    stats_proxy stats = { 0 };
                          ^
                          {}
bluca commented 12 months ago

Please state in the commit message that this is a clean room implementation with no knowledge of the previous implementation

bluca commented 12 months ago
C:\projects\libzmq\src\proxy.cpp(363,52): error C2220: the following warning is treated as an error [C:\projects\build_libzmq\libzmq.vcxproj]
C:\projects\libzmq\src\proxy.cpp(363,52): warning C4267: 'argument': conversion from 'size_t' to 'int', possible loss of data [C:\projects\build_libzmq\libzmq.vcxproj]
C:\projects\libzmq\src\proxy.cpp(369,50): warning C4267: 'argument': conversion from 'size_t' to 'int', possible loss of data [C:\projects\build_libzmq\libzmq.vcxproj]
C:\projects\libzmq\src\proxy.cpp(376,26): error C2146: syntax error: missing ')' before identifier 'and' [C:\projects\build_libzmq\libzmq.vcxproj]
C:\projects\libzmq\src\proxy.cpp(376,26): error C2065: 'and': undeclared identifier [C:\projects\build_libzmq\libzmq.vcxproj]
C:\projects\libzmq\src\proxy.cpp(376,30): error C2146: syntax error: missing ';' before identifier 'events' [C:\projects\build_libzmq\libzmq.vcxproj]
C:\projects\libzmq\src\proxy.cpp(376,58): error C2059: syntax error: ')' [C:\projects\build_libzmq\libzmq.vcxproj]
C:\projects\libzmq\src\proxy.cpp(377,60): error C2059: syntax error: ';' [C:\projects\build_libzmq\libzmq.vcxproj]
C:\projects\libzmq\src\proxy.cpp([382](https://ci.appveyor.com/project/zeromq/libzmq/builds/48221999/job/k2t27ri95ylbajmj#L382),24): error C2065: 'i': undeclared identifier [C:\projects\build_libzmq\libzmq.vcxproj]
C:\projects\libzmq\src\proxy.cpp([383](https://ci.appveyor.com/project/zeromq/libzmq/builds/48221999/job/k2t27ri95ylbajmj#L383),39): error C2065: 'i': undeclared identifier [C:\projects\build_libzmq\libzmq.vcxproj]
  pull.cpp
C:\projects\libzmq\src\proxy.cpp([384](https://ci.appveyor.com/project/zeromq/libzmq/builds/48221999/job/k2t27ri95ylbajmj#L384),40): error C2065: 'i': undeclared identifier [C:\projects\build_libzmq\libzmq.vcxproj]
C:\projects\libzmq\src\proxy.cpp([388](https://ci.appveyor.com/project/zeromq/libzmq/builds/48221999/job/k2t27ri95ylbajmj#L388),28): error C2065: 'i': undeclared identifier [C:\projects\build_libzmq\libzmq.vcxproj]
C:\projects\libzmq\src\proxy.cpp([389](https://ci.appveyor.com/project/zeromq/libzmq/builds/48221999/job/k2t27ri95ylbajmj#L389),42): error C2065: 'i': undeclared identifier [C:\projects\build_libzmq\libzmq.vcxproj]
  push.cpp
C:\projects\libzmq\src\proxy.cpp([390](https://ci.appveyor.com/project/zeromq/libzmq/builds/48221999/job/k2t27ri95ylbajmj#L390),43): error C2065: 'i': undeclared identifier [C:\projects\build_libzmq\libzmq.vcxproj]
C:\projects\libzmq\src\proxy.cpp(473,5): error C2059: syntax error: 'do' [C:\projects\build_libzmq\libzmq.vcxproj]
C:\projects\libzmq\src\proxy.cpp(473,5): error C2143: syntax error: missing ';' before '{' [C:\projects\build_libzmq\libzmq.vcxproj]
C:\projects\libzmq\src\proxy.cpp(473,5): error C2447: '{': missing function header (old-style formal list?) [C:\projects\build_libzmq\libzmq.vcxproj]
C:\projects\libzmq\src\proxy.cpp(473,5): error C2059: syntax error: 'while' [C:\projects\build_libzmq\libzmq.vcxproj]
C:\projects\libzmq\src\proxy.cpp(474,5): error C2059: syntax error: 'return' [C:\projects\build_libzmq\libzmq.vcxproj]
C:\projects\libzmq\src\proxy.cpp(475,1): error C2059: syntax error: '}' [C:\projects\build_libzmq\libzmq.vcxproj]
C:\projects\libzmq\src\proxy.cpp(475,1): error C2143: syntax error: missing ';' before '}' [C:\projects\build_libzmq\libzmq.vcxproj]
brettviren commented 12 months ago

Thanks, @bluca. I'm working on this now.

brettviren commented 12 months ago

@bluca as far as I can understand the failed/cancelled tests are not related to these changes.

Please let me know if you spot other improvements that are needed.

bluca commented 12 months ago

please rebase and squash the fixups

bluca commented 12 months ago

this also needs to be fixed https://github.com/zeromq/libzmq/actions/runs/6449567065/job/17508023155?pr=4598

brettviren commented 12 months ago

@bluca clang formatted and commit squashed. Is the failed test or the two that timed out pointing to something still broken?