|
From: andypugh <no...@gi...> - 2026-04-04 15:35:58
|
Branch: refs/heads/master Home: https://github.com/LinuxCNC/linuxcnc Commit: 38b67623ae970658bb3767d43a8e228d9da66fbb https://github.com/LinuxCNC/linuxcnc/commit/38b67623ae970658bb3767d43a8e228d9da66fbb Author: Luca Toniolo <lu...@ai...> Date: 2026-03-31 (Tue, 31 Mar 2026) Changed paths: M debian/copyright M src/Makefile M src/emc/motion-logger/Submakefile A src/emc/tp/cruckig/LICENSE A src/emc/tp/cruckig/block.c A src/emc/tp/cruckig/block.h A src/emc/tp/cruckig/brake.c A src/emc/tp/cruckig/brake.h A src/emc/tp/cruckig/calculator.c A src/emc/tp/cruckig/calculator.h A src/emc/tp/cruckig/cruckig.c A src/emc/tp/cruckig/cruckig.h A src/emc/tp/cruckig/cruckig_internal.h A src/emc/tp/cruckig/input_parameter.c A src/emc/tp/cruckig/input_parameter.h A src/emc/tp/cruckig/output_parameter.c A src/emc/tp/cruckig/output_parameter.h A src/emc/tp/cruckig/position.h A src/emc/tp/cruckig/position_first_step1.c A src/emc/tp/cruckig/position_first_step2.c A src/emc/tp/cruckig/position_second_step1.c A src/emc/tp/cruckig/position_second_step2.c A src/emc/tp/cruckig/position_third_step1.c A src/emc/tp/cruckig/position_third_step2.c A src/emc/tp/cruckig/profile.c A src/emc/tp/cruckig/profile.h A src/emc/tp/cruckig/result.h A src/emc/tp/cruckig/roots.c A src/emc/tp/cruckig/roots.h A src/emc/tp/cruckig/trajectory.c A src/emc/tp/cruckig/trajectory.h A src/emc/tp/cruckig/utils.h A src/emc/tp/cruckig/velocity.h A src/emc/tp/cruckig/velocity_second_step1.c A src/emc/tp/cruckig/velocity_second_step2.c A src/emc/tp/cruckig/velocity_third_step1.c A src/emc/tp/cruckig/velocity_third_step2.c R src/emc/tp/ruckig/.github/workflows/cd.yml R src/emc/tp/ruckig/.github/workflows/ci.yml R src/emc/tp/ruckig/.gitignore R src/emc/tp/ruckig/CITATION.cff R src/emc/tp/ruckig/CMakeLists.txt R src/emc/tp/ruckig/LICENSE R src/emc/tp/ruckig/README.md R src/emc/tp/ruckig/cmake/ruckig-config.cmake.in R src/emc/tp/ruckig/doc/benchmark.png R src/emc/tp/ruckig/doc/example_profile.png R src/emc/tp/ruckig/doc/ruckig_toppra_example.png R src/emc/tp/ruckig/examples/01_position.cpp R src/emc/tp/ruckig/examples/01_position.py R src/emc/tp/ruckig/examples/02_position_offline.cpp R src/emc/tp/ruckig/examples/02_position_offline.py R src/emc/tp/ruckig/examples/03_waypoints.cpp R src/emc/tp/ruckig/examples/03_waypoints.py R src/emc/tp/ruckig/examples/04_waypoints_online.cpp R src/emc/tp/ruckig/examples/04_waypoints_online.py R src/emc/tp/ruckig/examples/05_velocity.cpp R src/emc/tp/ruckig/examples/05_velocity.py R src/emc/tp/ruckig/examples/06_stop.cpp R src/emc/tp/ruckig/examples/06_stop.py R src/emc/tp/ruckig/examples/07_minimum_duration.cpp R src/emc/tp/ruckig/examples/07_minimum_duration.py R src/emc/tp/ruckig/examples/08_per_section_minimum_duration.cpp R src/emc/tp/ruckig/examples/08_per_section_minimum_duration.py R src/emc/tp/ruckig/examples/09_dynamic_dofs.cpp R src/emc/tp/ruckig/examples/09_dynamic_dofs.py R src/emc/tp/ruckig/examples/10_dynamic_dofs_waypoints.cpp R src/emc/tp/ruckig/examples/10_dynamic_dofs_waypoints.py R src/emc/tp/ruckig/examples/11_eigen_vector_type.cpp R src/emc/tp/ruckig/examples/11_eigen_vector_type.py R src/emc/tp/ruckig/examples/12_custom_vector_type.cpp R src/emc/tp/ruckig/examples/12_custom_vector_type.py R src/emc/tp/ruckig/examples/13_custom_vector_type_dynamic_dofs.cpp R src/emc/tp/ruckig/examples/13_custom_vector_type_dynamic_dofs.py R src/emc/tp/ruckig/examples/14_tracking.cpp R src/emc/tp/ruckig/examples/14_tracking.py R src/emc/tp/ruckig/examples/CMakeLists-directory.txt R src/emc/tp/ruckig/examples/CMakeLists-installed.txt R src/emc/tp/ruckig/examples/plotter.py R src/emc/tp/ruckig/include/ruckig/block.hpp R src/emc/tp/ruckig/include/ruckig/brake.hpp R src/emc/tp/ruckig/include/ruckig/calculator.hpp R src/emc/tp/ruckig/include/ruckig/calculator_cloud.hpp R src/emc/tp/ruckig/include/ruckig/calculator_target.hpp R src/emc/tp/ruckig/include/ruckig/error.hpp R src/emc/tp/ruckig/include/ruckig/input_parameter.hpp R src/emc/tp/ruckig/include/ruckig/optional.hpp R src/emc/tp/ruckig/include/ruckig/output_parameter.hpp R src/emc/tp/ruckig/include/ruckig/position.hpp R src/emc/tp/ruckig/include/ruckig/profile.hpp R src/emc/tp/ruckig/include/ruckig/result.hpp R src/emc/tp/ruckig/include/ruckig/roots.hpp R src/emc/tp/ruckig/include/ruckig/ruckig.hpp R src/emc/tp/ruckig/include/ruckig/trajectory.hpp R src/emc/tp/ruckig/include/ruckig/utils.hpp R src/emc/tp/ruckig/include/ruckig/velocity.hpp R src/emc/tp/ruckig/package.xml R src/emc/tp/ruckig/pyproject.toml R src/emc/tp/ruckig/src/ruckig/brake.cpp R src/emc/tp/ruckig/src/ruckig/cloud_client.cpp R src/emc/tp/ruckig/src/ruckig/position_first_step1.cpp R src/emc/tp/ruckig/src/ruckig/position_first_step2.cpp R src/emc/tp/ruckig/src/ruckig/position_second_step1.cpp R src/emc/tp/ruckig/src/ruckig/position_second_step2.cpp R src/emc/tp/ruckig/src/ruckig/position_third_step1.cpp R src/emc/tp/ruckig/src/ruckig/position_third_step2.cpp R src/emc/tp/ruckig/src/ruckig/python.cpp R src/emc/tp/ruckig/src/ruckig/velocity_second_step1.cpp R src/emc/tp/ruckig/src/ruckig/velocity_second_step2.cpp R src/emc/tp/ruckig/src/ruckig/velocity_third_step1.cpp R src/emc/tp/ruckig/src/ruckig/velocity_third_step2.cpp R src/emc/tp/ruckig/test/benchmark_target.cpp R src/emc/tp/ruckig/test/randomizer.hpp R src/emc/tp/ruckig/test/test_target.cpp R src/emc/tp/ruckig/third_party/doctest/LICENSE R src/emc/tp/ruckig/third_party/doctest/doctest.h R src/emc/tp/ruckig/third_party/httplib/LICENSE R src/emc/tp/ruckig/third_party/httplib/httplib.h R src/emc/tp/ruckig/third_party/nlohmann/LICENSE R src/emc/tp/ruckig/third_party/nlohmann/json.hpp M src/emc/tp/ruckig_wrapper.c R src/emc/tp/ruckig_wrapper.cc M src/emc/tp/tc.c M src/emc/tp/tp.c Log Message: ----------- Replace C++ Ruckig with pure C cruckig to fix RTAI builds The C++ Ruckig library cannot compile in RTAI kernel space (no C++ in kernel modules). Replace it with cruckig, a pure C99 port that produces identical trajectories (validated to 5.9e-12 position error). - Vendor cruckig source (MIT license) from github.com/mika4128/cruckig - Rewrite ruckig_wrapper.c to use cruckig API (same ruckig_wrapper.h interface, zero changes needed in tp.c, tc.c, sp_scurve.c) - Add cruckig_compat.h for RTAPI kernel/userspace portability (rtapi_slab.h for malloc/free, rtapi_math.h for math functions) - Update Makefile and motion-logger Submakefile for C-only build - Remove C++ Ruckig source tree and ruckig_wrapper.cc Fixes: https://github.com/LinuxCNC/linuxcnc/issues/3875 Commit: d2c5120deee07409883891713bfe5f96a2538221 https://github.com/LinuxCNC/linuxcnc/commit/d2c5120deee07409883891713bfe5f96a2538221 Author: andypugh <an...@bo...> Date: 2026-04-04 (Sat, 04 Apr 2026) Changed paths: M debian/copyright M src/Makefile M src/emc/motion-logger/Submakefile A src/emc/tp/cruckig/LICENSE A src/emc/tp/cruckig/block.c A src/emc/tp/cruckig/block.h A src/emc/tp/cruckig/brake.c A src/emc/tp/cruckig/brake.h A src/emc/tp/cruckig/calculator.c A src/emc/tp/cruckig/calculator.h A src/emc/tp/cruckig/cruckig.c A src/emc/tp/cruckig/cruckig.h A src/emc/tp/cruckig/cruckig_internal.h A src/emc/tp/cruckig/input_parameter.c A src/emc/tp/cruckig/input_parameter.h A src/emc/tp/cruckig/output_parameter.c A src/emc/tp/cruckig/output_parameter.h A src/emc/tp/cruckig/position.h A src/emc/tp/cruckig/position_first_step1.c A src/emc/tp/cruckig/position_first_step2.c A src/emc/tp/cruckig/position_second_step1.c A src/emc/tp/cruckig/position_second_step2.c A src/emc/tp/cruckig/position_third_step1.c A src/emc/tp/cruckig/position_third_step2.c A src/emc/tp/cruckig/profile.c A src/emc/tp/cruckig/profile.h A src/emc/tp/cruckig/result.h A src/emc/tp/cruckig/roots.c A src/emc/tp/cruckig/roots.h A src/emc/tp/cruckig/trajectory.c A src/emc/tp/cruckig/trajectory.h A src/emc/tp/cruckig/utils.h A src/emc/tp/cruckig/velocity.h A src/emc/tp/cruckig/velocity_second_step1.c A src/emc/tp/cruckig/velocity_second_step2.c A src/emc/tp/cruckig/velocity_third_step1.c A src/emc/tp/cruckig/velocity_third_step2.c R src/emc/tp/ruckig/.github/workflows/cd.yml R src/emc/tp/ruckig/.github/workflows/ci.yml R src/emc/tp/ruckig/.gitignore R src/emc/tp/ruckig/CITATION.cff R src/emc/tp/ruckig/CMakeLists.txt R src/emc/tp/ruckig/LICENSE R src/emc/tp/ruckig/README.md R src/emc/tp/ruckig/cmake/ruckig-config.cmake.in R src/emc/tp/ruckig/doc/benchmark.png R src/emc/tp/ruckig/doc/example_profile.png R src/emc/tp/ruckig/doc/ruckig_toppra_example.png R src/emc/tp/ruckig/examples/01_position.cpp R src/emc/tp/ruckig/examples/01_position.py R src/emc/tp/ruckig/examples/02_position_offline.cpp R src/emc/tp/ruckig/examples/02_position_offline.py R src/emc/tp/ruckig/examples/03_waypoints.cpp R src/emc/tp/ruckig/examples/03_waypoints.py R src/emc/tp/ruckig/examples/04_waypoints_online.cpp R src/emc/tp/ruckig/examples/04_waypoints_online.py R src/emc/tp/ruckig/examples/05_velocity.cpp R src/emc/tp/ruckig/examples/05_velocity.py R src/emc/tp/ruckig/examples/06_stop.cpp R src/emc/tp/ruckig/examples/06_stop.py R src/emc/tp/ruckig/examples/07_minimum_duration.cpp R src/emc/tp/ruckig/examples/07_minimum_duration.py R src/emc/tp/ruckig/examples/08_per_section_minimum_duration.cpp R src/emc/tp/ruckig/examples/08_per_section_minimum_duration.py R src/emc/tp/ruckig/examples/09_dynamic_dofs.cpp R src/emc/tp/ruckig/examples/09_dynamic_dofs.py R src/emc/tp/ruckig/examples/10_dynamic_dofs_waypoints.cpp R src/emc/tp/ruckig/examples/10_dynamic_dofs_waypoints.py R src/emc/tp/ruckig/examples/11_eigen_vector_type.cpp R src/emc/tp/ruckig/examples/11_eigen_vector_type.py R src/emc/tp/ruckig/examples/12_custom_vector_type.cpp R src/emc/tp/ruckig/examples/12_custom_vector_type.py R src/emc/tp/ruckig/examples/13_custom_vector_type_dynamic_dofs.cpp R src/emc/tp/ruckig/examples/13_custom_vector_type_dynamic_dofs.py R src/emc/tp/ruckig/examples/14_tracking.cpp R src/emc/tp/ruckig/examples/14_tracking.py R src/emc/tp/ruckig/examples/CMakeLists-directory.txt R src/emc/tp/ruckig/examples/CMakeLists-installed.txt R src/emc/tp/ruckig/examples/plotter.py R src/emc/tp/ruckig/include/ruckig/block.hpp R src/emc/tp/ruckig/include/ruckig/brake.hpp R src/emc/tp/ruckig/include/ruckig/calculator.hpp R src/emc/tp/ruckig/include/ruckig/calculator_cloud.hpp R src/emc/tp/ruckig/include/ruckig/calculator_target.hpp R src/emc/tp/ruckig/include/ruckig/error.hpp R src/emc/tp/ruckig/include/ruckig/input_parameter.hpp R src/emc/tp/ruckig/include/ruckig/optional.hpp R src/emc/tp/ruckig/include/ruckig/output_parameter.hpp R src/emc/tp/ruckig/include/ruckig/position.hpp R src/emc/tp/ruckig/include/ruckig/profile.hpp R src/emc/tp/ruckig/include/ruckig/result.hpp R src/emc/tp/ruckig/include/ruckig/roots.hpp R src/emc/tp/ruckig/include/ruckig/ruckig.hpp R src/emc/tp/ruckig/include/ruckig/trajectory.hpp R src/emc/tp/ruckig/include/ruckig/utils.hpp R src/emc/tp/ruckig/include/ruckig/velocity.hpp R src/emc/tp/ruckig/package.xml R src/emc/tp/ruckig/pyproject.toml R src/emc/tp/ruckig/src/ruckig/brake.cpp R src/emc/tp/ruckig/src/ruckig/cloud_client.cpp R src/emc/tp/ruckig/src/ruckig/position_first_step1.cpp R src/emc/tp/ruckig/src/ruckig/position_first_step2.cpp R src/emc/tp/ruckig/src/ruckig/position_second_step1.cpp R src/emc/tp/ruckig/src/ruckig/position_second_step2.cpp R src/emc/tp/ruckig/src/ruckig/position_third_step1.cpp R src/emc/tp/ruckig/src/ruckig/position_third_step2.cpp R src/emc/tp/ruckig/src/ruckig/python.cpp R src/emc/tp/ruckig/src/ruckig/velocity_second_step1.cpp R src/emc/tp/ruckig/src/ruckig/velocity_second_step2.cpp R src/emc/tp/ruckig/src/ruckig/velocity_third_step1.cpp R src/emc/tp/ruckig/src/ruckig/velocity_third_step2.cpp R src/emc/tp/ruckig/test/benchmark_target.cpp R src/emc/tp/ruckig/test/randomizer.hpp R src/emc/tp/ruckig/test/test_target.cpp R src/emc/tp/ruckig/third_party/doctest/LICENSE R src/emc/tp/ruckig/third_party/doctest/doctest.h R src/emc/tp/ruckig/third_party/httplib/LICENSE R src/emc/tp/ruckig/third_party/httplib/httplib.h R src/emc/tp/ruckig/third_party/nlohmann/LICENSE R src/emc/tp/ruckig/third_party/nlohmann/json.hpp M src/emc/tp/ruckig_wrapper.c R src/emc/tp/ruckig_wrapper.cc M src/emc/tp/tc.c M src/emc/tp/tp.c Log Message: ----------- Merge pull request #3884 from grandixximo/master Replace C++ Ruckig with pure C cruckig to fix RTAI builds Compare: https://github.com/LinuxCNC/linuxcnc/compare/2aee01092510...d2c5120deee0 To unsubscribe from these emails, change your notification settings at https://github.com/LinuxCNC/linuxcnc/settings/notifications |