-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Upgrade to jazzy #11
Upgrade to jazzy #11
Conversation
Required to build libmicroros for Yaskawa-Global/motoros2#337 |
I changed the |
I'm able to successfully build, install, and run with these package versions. It passes all of my testing. The only issue left is to resolve the merge conflict. Do we want the Personally, I'm ok with the larger binary. It loads into the YRC just fine, even alongside my welding application. |
@ted-miller wrote in https://github.com/Yaskawa-Global/micro_ros_motoplus_buildscripts/pull/162#discussion_r1884468752:
that's more than 240% of the size of the current YRC1 Humble binary. I would indeed recommend we get the |
@jimmy-mcelwain: could you squash some of the fixups and rebase this? |
I cleaned up the history on my fork. I didn't add any "new" commits, but I did a lot of squashing. I have not done a lot of manipulation of git history so I don't want to push it here until somebody gives the green light. |
I will work on this |
@jimmy-mcelwain: if you really want to work on it (I can also do it): an actual rebase is probably not productive. There will be many conflicts, as quite a bit has changed in The 'only' thing that changed in that patch is all/most functions got their own So instead of one single Of course you have to take symbol visibility into account, but that's basically it. Lots of duplication, but that's not important. |
I have been working on updating
I haven't done thorough testing, but I have MR2 running using the libmicroros built with that branch that I linked. I don't know how you are getting closer to 1MB @gavanderhoorn. I thought that maybe the flags that you mentioned in the thread I linked above. But I'm not sure. |
Since making these changes, I've also noticed that my build times (for target_ws/libmicroros) have increased on my machine (~15 min -> ~25 min). I'm guessing that the increased number of files is the reason. |
I'll take a look. re: flags: yes, there's a good chance. You can see (most of) the flags in the
25 minutes? On my machine it takes 2 mins 35 seconds to complete a build. I find that on Windows processes like these are often bottlenecked on IO. NTFS is a slow FS, more so with (multiple) virus and threat scanners. If possible, try to configure/add some exceptions. Or wait half an hour of course. |
Your IT dept buys better equipment than ours :)
Unfortunately, we do have multiple scanners that we cannot add exceptions to. My one scanner continuously takes 40-50% of my CPU at all times. It destroys my battery-life. Having said that, 25 minutes is excessive even on my machine. We'll see if we can improve that. |
I have cleaned up the history and clarified the comment about the commit on |
@gavanderhoorn Have you had a chance to look at the binary size. Yesterday, I tried a build and the final binary was 2397 KB. I explicitly verified that I am using Jimmy's one-func-per-file branch of rosidl. I also did a build using the |
yes, I have. Not 100% sure yet, but I think I've got it down to these differences:
yes, that's about the size I also see when I don't do anything special.
You can't really mix The reason you're seeing a smaller So Having written that: without some work on infrastructure we won't be able to address this. We probably don't need to block releasing a Jazzy version of MotoROS2; I'll work on reducing binary size later, and I can build the binary as well. For reference, with some minor tweaking (so nothing too invasive) the final binary for YRC1 is about 1.4 MB. Still an almost 50% increase, but better than the 2.4MB (+ in some cases) you and @jimmy-mcelwain reported earlier. |
My suggestion for how to move forward here:
At that point I believe we can consider |
Rebased and squashed unnecessary commits |
Release tags have been created. Thanks @gavanderhoorn for building the libs. Closing this PR and making |
Do not merge. This branch should stay separate. The PR is only here to review/discuss.
Required for Yaskawa-Global/motoros2#337
I can squash the commits if that would be cleaner.
Notable changes (not just update upstream/cherry pick) include micro-ROS/rcl@jazzy...Yaskawa-Global:micro_ros_rcl:jazzy and ament/ament_cmake@jazzy...Yaskawa-Global:ament_cmake:jazzy.
Please review and comment on those comparisons here (making PRs in those repos doesn't make sense)
ros2_tracetools is also notable because it is the only non-fork that doesn't match up with the jazzy release targets. I had to target a more up-to-date version to avoid breaking the build. The targeted commit is the one that fixes the problem that broke the build.
Additionally, I chose a specific commit for motoros2_interfaces because the most recent release 0.1.3 is not compatible with the most up-to-date commits of MotoROS2.
I did not update jazzy to match
rosidl
'sone_func_per_file
branch. I am just pulling directly from upstream. If we need theone_func_per_file
style, I can do that.I also got rid of the
rcpputils
package. I know that this should probably be a separate PR, and I can do that if needed. But it was just easier because it isn't required and removing it sped up the build (which I had to do many times).