Skip to content

fixup/experiment: replace std::system by boost.process to launch processes in a cross-platform way#685

Draft
Klaim wants to merge 4 commits intojupyter-xeus:mainfrom
Klaim:fixup-tests-xpython-process
Draft

fixup/experiment: replace std::system by boost.process to launch processes in a cross-platform way#685
Klaim wants to merge 4 commits intojupyter-xeus:mainfrom
Klaim:fixup-tests-xpython-process

Conversation

@Klaim
Copy link

@Klaim Klaim commented Jan 21, 2026

Theory this attempts to confirm: std::system takes a command sent to whatever terminal system is running for that system, which on Windows might depend (cmd, powershell, git-bash etc.) and & to launch a process without waiting for it doesnt work on Windows, making the tests hang waiting for the end of the xpython process.
Instead, launch that process using a cross-platform process library (here I used boost.python because I'm familiair with it's V1 api, using V2's api for now) so that the process launch is independant from the platform or terminal system. Also set it up so that the process lifetime is scoped , but without waiting for it to continue working the tests.

Boost.process could be replaced by another library, the core idea here is just to not use std::system.

On my local windows:

  • with main the c++ tests hang , waiting at the std::system call , waiting for the xpython process to end, even after 8 minutes;
  • with this change: all tests pass in 1 minutes.

Klaim added a commit to Klaim/xeus-python that referenced this pull request Jan 22, 2026
@Klaim Klaim changed the title fixup/test : replace std::system by boost.process to launch processes in a cross-platform way fixup/experiment: replace std::system by boost.process to launch processes in a cross-platform way Jan 22, 2026
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.

1 participant