Skip to content

Fix build with Cl and C++20#368

Merged
jorisv merged 6 commits intoSimple-Robotics:develfrom
jorisv:topic/fix-cl-build
Jan 27, 2025
Merged

Fix build with Cl and C++20#368
jorisv merged 6 commits intoSimple-Robotics:develfrom
jorisv:topic/fix-cl-build

Conversation

@jorisv
Copy link
Copy Markdown
Contributor

@jorisv jorisv commented Jan 23, 2025

Fix #367

Cl compiler doesn't expand __VA_ARGS__ like clang or gcc. It's well documented but hard to catch.

@aescande have introduce the __VEG_PP_ID macro to overcome this issue without activating the /Zc:preprocessor compiler flags.

TODO

  • Find a fix
  • Activate cl CI steps to avoid regression

@jorisv jorisv self-assigned this Jan 23, 2025
@alxbilger
Copy link
Copy Markdown

Hi @jorisv, thanks a lot for the fix. Just curious, how is this related to C++20?

@jorisv
Copy link
Copy Markdown
Contributor Author

jorisv commented Jan 24, 2025

Hello @alxbilger,

It's maybe related to some C++20 specific branch in our code base.

Code like this one can maybe trigger this issue:

#ifdef VEG_WITH_CXX20_SUPPORT
#define VEG_CPP20(...) __VA_ARGS__
#else
#define VEG_CPP20(...)
#endif

I will not dig into the root cause since the fix allow to use the __VEG_IMPL_PARAM_EXPAND in the same way with clang/g++/cl.

@alxbilger
Copy link
Copy Markdown

I see. Thanks for the clarification

@jorisv jorisv force-pushed the topic/fix-cl-build branch from c1a4c79 to 4faceb6 Compare January 24, 2025 13:09
@jorisv jorisv force-pushed the topic/fix-cl-build branch from 16cc180 to a383d12 Compare January 24, 2025 15:28
@jorisv jorisv merged commit d9b4dea into Simple-Robotics:devel Jan 27, 2025
@jorisv jorisv deleted the topic/fix-cl-build branch January 27, 2025 10:36
nim65s added a commit to nim65s/robotpkg that referenced this pull request Feb 3, 2026
upstream changes:

    ## [0.7.2] - 2025-03-12

    ### Fixed
    * Fix an arcane compilation issue on Clang-19 (Simple-Robotics/proxsuite#379)
    * Replace `!= None` with `is not None` in Python bindings (Simple-Robotics/proxsuite#375)
    * Fix Internal compiler error with Visual Studio 17.13 (Simple-Robotics/proxsuite#384)

    ### Changed
    * Upgrade nanobind submodule to v2.5.0 (Simple-Robotics/proxsuite#378)
    * Switch to gersemi for formatting (Simple-Robotics/proxsuite#380)
    * Switch to ruff for formatting / linting (Simple-Robotics/proxsuite#376)

    ## [0.7.1] - 2025-01-28

    ### Fixed
    * Fix Windows build with MSVC compiler and C++20 standard (Simple-Robotics/proxsuite#368)

    ## [0.7.0] - 2025-01-21

    ### Fixed
    * CMake: Fix link to system cereal in tests (Simple-Robotics/proxsuite#352)
    * Fix windows build error related to template usage in veg (Simple-Robotics/proxsuite#357)

    ### Added
    * Stub files for Python bindings, using [nanobind's native support](https://nanobind.readthedocs.io/en/latest/typing.html#stub-generation) (Simple-Robotics/proxsuite#340)
    * Python 3.13 support on PyPI (Simple-Robotics/proxsuite#361)
    * Add `solve_no_gil` for dense backend (multithreading via python) (Simple-Robotics/proxsuite#363)
    * Add benchmarks for `solve_no_gil` vs `solve_in_parallel` (openmp) (Simple-Robotics/proxsuite#363)

    ### Changed
    * Change Python bindings to use nanobind instead of pybind11 (Simple-Robotics/proxsuite#340)
    * Update setup-minicondav2 to v3 (Simple-Robotics/proxsuite#363)

    ## [0.6.7] - 2024-08-27

    ### Added
    * Fix mu update function for PrimalLDLT backend (Simple-Robotics/proxsuite#349)
    * Allow use of installed pybind11, cereal and jrl-cmakemodules via cmake
    * Add compatibility with jrl-cmakemodules workspace (Simple-Robotics/proxsuite#339)
    * Specifically mention that timings are in microseconds (Simple-Robotics/proxsuite#342)
    * Fix cereal include directory in cmake (Simple-Robotics/proxsuite#342)
    * Extend doc with hint for conda installation from source (Simple-Robotics/proxsuite#342)

    ### Fixed
    * Fix inequality constraints return in QPLayer (Simple-Robotics/proxsuite#343)

    ### Changed

    * Refactor Python examples with a new "util.py" file (Simple-Robotics/proxsuite#347)

    ## [0.6.6] - 2024-06-15

    ### Fixed
    * Fix infeasibility detection and add a unit test (Simple-Robotics/proxsuite#328)

packaging changes:

- added cereal dependency
- updated patches aa, ae
- removed patch-ab, applied upstream
nim65s added a commit to nim65s/robotpkg that referenced this pull request Feb 3, 2026
upstream changes:

    ## [0.7.2] - 2025-03-12

    ### Fixed
    * Fix an arcane compilation issue on Clang-19 (Simple-Robotics/proxsuite#379)
    * Replace `!= None` with `is not None` in Python bindings (Simple-Robotics/proxsuite#375)
    * Fix Internal compiler error with Visual Studio 17.13 (Simple-Robotics/proxsuite#384)

    ### Changed
    * Upgrade nanobind submodule to v2.5.0 (Simple-Robotics/proxsuite#378)
    * Switch to gersemi for formatting (Simple-Robotics/proxsuite#380)
    * Switch to ruff for formatting / linting (Simple-Robotics/proxsuite#376)

    ## [0.7.1] - 2025-01-28

    ### Fixed
    * Fix Windows build with MSVC compiler and C++20 standard (Simple-Robotics/proxsuite#368)

    ## [0.7.0] - 2025-01-21

    ### Fixed
    * CMake: Fix link to system cereal in tests (Simple-Robotics/proxsuite#352)
    * Fix windows build error related to template usage in veg (Simple-Robotics/proxsuite#357)

    ### Added
    * Stub files for Python bindings, using [nanobind's native support](https://nanobind.readthedocs.io/en/latest/typing.html#stub-generation) (Simple-Robotics/proxsuite#340)
    * Python 3.13 support on PyPI (Simple-Robotics/proxsuite#361)
    * Add `solve_no_gil` for dense backend (multithreading via python) (Simple-Robotics/proxsuite#363)
    * Add benchmarks for `solve_no_gil` vs `solve_in_parallel` (openmp) (Simple-Robotics/proxsuite#363)

    ### Changed
    * Change Python bindings to use nanobind instead of pybind11 (Simple-Robotics/proxsuite#340)
    * Update setup-minicondav2 to v3 (Simple-Robotics/proxsuite#363)

    ## [0.6.7] - 2024-08-27

    ### Added
    * Fix mu update function for PrimalLDLT backend (Simple-Robotics/proxsuite#349)
    * Allow use of installed pybind11, cereal and jrl-cmakemodules via cmake
    * Add compatibility with jrl-cmakemodules workspace (Simple-Robotics/proxsuite#339)
    * Specifically mention that timings are in microseconds (Simple-Robotics/proxsuite#342)
    * Fix cereal include directory in cmake (Simple-Robotics/proxsuite#342)
    * Extend doc with hint for conda installation from source (Simple-Robotics/proxsuite#342)

    ### Fixed
    * Fix inequality constraints return in QPLayer (Simple-Robotics/proxsuite#343)

    ### Changed

    * Refactor Python examples with a new "util.py" file (Simple-Robotics/proxsuite#347)

    ## [0.6.6] - 2024-06-15

    ### Fixed
    * Fix infeasibility detection and add a unit test (Simple-Robotics/proxsuite#328)

packaging changes:

- added cereal dependency
- updated patches aa, ae
- removed patch-ab, applied upstream
nim65s added a commit to nim65s/robotpkg that referenced this pull request Feb 3, 2026
upstream changes:

    ## [0.7.2] - 2025-03-12

    ### Fixed
    * Fix an arcane compilation issue on Clang-19 (Simple-Robotics/proxsuite#379)
    * Replace `!= None` with `is not None` in Python bindings (Simple-Robotics/proxsuite#375)
    * Fix Internal compiler error with Visual Studio 17.13 (Simple-Robotics/proxsuite#384)

    ### Changed
    * Upgrade nanobind submodule to v2.5.0 (Simple-Robotics/proxsuite#378)
    * Switch to gersemi for formatting (Simple-Robotics/proxsuite#380)
    * Switch to ruff for formatting / linting (Simple-Robotics/proxsuite#376)

    ## [0.7.1] - 2025-01-28

    ### Fixed
    * Fix Windows build with MSVC compiler and C++20 standard (Simple-Robotics/proxsuite#368)

    ## [0.7.0] - 2025-01-21

    ### Fixed
    * CMake: Fix link to system cereal in tests (Simple-Robotics/proxsuite#352)
    * Fix windows build error related to template usage in veg (Simple-Robotics/proxsuite#357)

    ### Added
    * Stub files for Python bindings, using [nanobind's native support](https://nanobind.readthedocs.io/en/latest/typing.html#stub-generation) (Simple-Robotics/proxsuite#340)
    * Python 3.13 support on PyPI (Simple-Robotics/proxsuite#361)
    * Add `solve_no_gil` for dense backend (multithreading via python) (Simple-Robotics/proxsuite#363)
    * Add benchmarks for `solve_no_gil` vs `solve_in_parallel` (openmp) (Simple-Robotics/proxsuite#363)

    ### Changed
    * Change Python bindings to use nanobind instead of pybind11 (Simple-Robotics/proxsuite#340)
    * Update setup-minicondav2 to v3 (Simple-Robotics/proxsuite#363)

    ## [0.6.7] - 2024-08-27

    ### Added
    * Fix mu update function for PrimalLDLT backend (Simple-Robotics/proxsuite#349)
    * Allow use of installed pybind11, cereal and jrl-cmakemodules via cmake
    * Add compatibility with jrl-cmakemodules workspace (Simple-Robotics/proxsuite#339)
    * Specifically mention that timings are in microseconds (Simple-Robotics/proxsuite#342)
    * Fix cereal include directory in cmake (Simple-Robotics/proxsuite#342)
    * Extend doc with hint for conda installation from source (Simple-Robotics/proxsuite#342)

    ### Fixed
    * Fix inequality constraints return in QPLayer (Simple-Robotics/proxsuite#343)

    ### Changed

    * Refactor Python examples with a new "util.py" file (Simple-Robotics/proxsuite#347)

    ## [0.6.6] - 2024-06-15

    ### Fixed
    * Fix infeasibility detection and add a unit test (Simple-Robotics/proxsuite#328)

packaging changes:

- added cereal dependency
- updated patches aa, ae
- removed patch-ab, applied upstream
nim65s added a commit to nim65s/robotpkg that referenced this pull request Feb 10, 2026
upstream changes:

    ## [0.7.2] - 2025-03-12

    ### Fixed
    * Fix an arcane compilation issue on Clang-19 (Simple-Robotics/proxsuite#379)
    * Replace `!= None` with `is not None` in Python bindings (Simple-Robotics/proxsuite#375)
    * Fix Internal compiler error with Visual Studio 17.13 (Simple-Robotics/proxsuite#384)

    ### Changed
    * Upgrade nanobind submodule to v2.5.0 (Simple-Robotics/proxsuite#378)
    * Switch to gersemi for formatting (Simple-Robotics/proxsuite#380)
    * Switch to ruff for formatting / linting (Simple-Robotics/proxsuite#376)

    ## [0.7.1] - 2025-01-28

    ### Fixed
    * Fix Windows build with MSVC compiler and C++20 standard (Simple-Robotics/proxsuite#368)

    ## [0.7.0] - 2025-01-21

    ### Fixed
    * CMake: Fix link to system cereal in tests (Simple-Robotics/proxsuite#352)
    * Fix windows build error related to template usage in veg (Simple-Robotics/proxsuite#357)

    ### Added
    * Stub files for Python bindings, using [nanobind's native support](https://nanobind.readthedocs.io/en/latest/typing.html#stub-generation) (Simple-Robotics/proxsuite#340)
    * Python 3.13 support on PyPI (Simple-Robotics/proxsuite#361)
    * Add `solve_no_gil` for dense backend (multithreading via python) (Simple-Robotics/proxsuite#363)
    * Add benchmarks for `solve_no_gil` vs `solve_in_parallel` (openmp) (Simple-Robotics/proxsuite#363)

    ### Changed
    * Change Python bindings to use nanobind instead of pybind11 (Simple-Robotics/proxsuite#340)
    * Update setup-minicondav2 to v3 (Simple-Robotics/proxsuite#363)

    ## [0.6.7] - 2024-08-27

    ### Added
    * Fix mu update function for PrimalLDLT backend (Simple-Robotics/proxsuite#349)
    * Allow use of installed pybind11, cereal and jrl-cmakemodules via cmake
    * Add compatibility with jrl-cmakemodules workspace (Simple-Robotics/proxsuite#339)
    * Specifically mention that timings are in microseconds (Simple-Robotics/proxsuite#342)
    * Fix cereal include directory in cmake (Simple-Robotics/proxsuite#342)
    * Extend doc with hint for conda installation from source (Simple-Robotics/proxsuite#342)

    ### Fixed
    * Fix inequality constraints return in QPLayer (Simple-Robotics/proxsuite#343)

    ### Changed

    * Refactor Python examples with a new "util.py" file (Simple-Robotics/proxsuite#347)

    ## [0.6.6] - 2024-06-15

    ### Fixed
    * Fix infeasibility detection and add a unit test (Simple-Robotics/proxsuite#328)

packaging changes:

- added cereal dependency
- updated patches aa, ae
- removed patch-ab, applied upstream
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants