upkie / vulp

Robot/simulation switch for the mjbots stack
Apache License 2.0
61 stars 4 forks source link

[macOS] mpack serialization fails #96

Closed ubgk closed 1 month ago

ubgk commented 1 month ago

Bug description

My bullet_spine fails when logger.put() is called here : https://github.com/upkie/vulp/blob/f1774891e7c564d0954c904a9c8b6c4dcf05b893/vulp/spine/Spine.cpp#L72

The error message is:

libc++abi: terminating due to uncaught exception of type palimpsest::exceptions::TypeError: [bazel-out/darwin-opt/bin/external/palimpsest/include/palimpsest/mpack/_virtual_includes/mpack/palimpsest/mpack/write.h:36] No known serialization function for typeid "m"

We can tell "m" corresponds to unsigned long (or size_t). Normally, the uint32_t specialization of the templated write function in palimpsest should match this type, but for some reason it doesn't.

I am not sure if this issue is caused by a change in any of the underlying projects or changes in my compiler. I am not sure If Bazel always uses a specific version of clang or the system one.

Expected behavior

The specialization should match the unsigned long type.

Reproduction steps

Steps to reproduce the behavior: Run try_pid_balancer on macOS from the Upkie project.

System