Closed djberg96 closed 1 year ago
This is a common pattern for adding extra information to assertions, not sure what the solution is.
@ioquatix Looks like a void cast is the solution on the intertubes. Can do them individually or use a macro:
#define m_assert(expr, msg) assert(( (void)(msg), (expr) ))
Is this fixed upstream in libev
? Because that would be the logical place to fix it.
@ioquatix How do y'all pull in the libev code? Is it a submodule?
No you have to copy it and manually move the changes. Normally I just replace the entire source tree and then manually revert the chunks of code we've changed. It's a little cumbersome.
It's a bit tricky because the libev API for running code within the event loop and releasing the GVL are both callback-driven and therefore can't be composed easily, so it's necessary to patch releasing the GVL directly into the libev event loop.
There's a large comment describing the situation in the code.
ruby 2.7.6p219 (2022-04-12 revision c9c2245c0a) [arm64-darwin21]
Darwin CMMM00RX0QHL2 21.6.0 Darwin Kernel Version 21.6.0: Wed Aug 10 14:28:23 PDT 2022; root:xnu-8020.141.5~2/RELEASE_ARM64_T6000 arm64
Apple clang version 14.0.0 (clang-1400.0.29.102) Target: arm64-apple-darwin21.6.0