Comments (7)
It's interesting that this only happens with rolling
. As I see it, we have two options:
- disable the dynamic message feature (
dyn_msg
) from theclippy
check - disable the warning about
u128
(viaimproper-ctypes
) from theclippy
check
I believe that disabling the check from clippy
should be fine in our case, as we're not exposing this API.
@maspe36 what do you think?
from ros2_rust.
This is also happening with iron
in my PR to add support for it. I'm trying to hunt down the root cause and depending on that it may indeed make sense to disable the warning or dynamic message feature from clippy.
The first build I found where this was failing the rolling build #974.
Current theory is that this is related to the version uptick in rosidl_generator_c from 3.3.1 to 4.1.1 as that is a major version change between builds #974 and #973. I'll keep digging
from ros2_rust.
Looks like this is cause by the new Runtime Interface Reflection feature (#215) in the rmw_implementation package.
However, the original type that is ultimately by translated by bindgen(?) to a u128 is defined here in the newly stabilized in Iron, rosidl_dynamic_typesupport package.
It seems like the dyn_msg
feature is a custom feature we use and frankly I don't know much about cargo features. I think the best course would be to disable clippy lints for the auto generated bindgen code.
But... Isn't that what we're doing here? Safe to say I'm a bit lost
from ros2_rust.
@maspe36 adding #![allow(improper_ctypes)]
should suppress that warning (see https://github.com/CCExtractor/rusty_ffmpeg/pull/13/files). I'll build locally with that change and see if it works.
from ros2_rust.
Nothing for us to do at this time, but there has been some movement upstream which will eventually trickle down to us
rust-lang/rust#54341
from ros2_rust.
u128 is already FFI safe: https://blog.rust-lang.org/2024/03/30/i128-layout-update.html
from ros2_rust.
Yup, this is now part of stable Rust as of May 2nd. To take advantage we will need to upgrade from 1.74 to 1.78.
Issue for this upgrade created here #398
from ros2_rust.
Related Issues (20)
- Check if our CI configuration is potentially causing our intermittent failures HOT 1
- Move rclrs_test into rclrs
- Investigate the rcl struct drop order HOT 4
- Failed to build depends on `builtin_interfaces` HOT 10
- Cargo can't find `Std_msgs` HOT 6
- Your own installation process crashes HOT 2
- Strange Warning by initial rclrs compilation HOT 2
- Audit drop ordering for rcl handles HOT 2
- Your tutorial is actually too complicated for beginners. HOT 5
- How to build subscribers? HOT 1
- `self.node.get_clock().now().to_ros_msg().unwrap()` doesn't work anymore HOT 12
- QoS for Clients and Services HOT 6
- Prevent message packages from crates.io to be included during the build HOT 15
- Crate imports_granularity requires nightly HOT 4
- Action_msgs not findable, because of relocation from `/ros_ws/install/action_msgs/share/action_msgs/rust` to `/ros_ws/install/share/action_msgs/rust/` HOT 3
- Upgrade to Rust 1.78 HOT 2
- Begin Jazzy Testing HOT 2
- Improve Message Generation Documentation
- Investigate proposed alternatives to the existing message generation pipeline.
- Panic occurs when publish sequence types for Rust 1.78 HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ros2_rust.