fixup/experiment: replace std::system by boost.process to launch processes in a cross-platform way#685
Closed
Klaim wants to merge 4 commits intojupyter-xeus:mainfrom
Closed
fixup/experiment: replace std::system by boost.process to launch processes in a cross-platform way#685Klaim wants to merge 4 commits intojupyter-xeus:mainfrom
Klaim wants to merge 4 commits intojupyter-xeus:mainfrom
Conversation
…ndant - fixup attempt by using boost.process instead
Klaim
added a commit
to Klaim/xeus-python
that referenced
this pull request
Jan 22, 2026
Closed
Klaim
added a commit
to Klaim/xeus-python
that referenced
this pull request
Mar 26, 2026
Contributor
Author
|
proper fix moved in #702 |
SylvainCorlay
pushed a commit
that referenced
this pull request
Mar 27, 2026
* applied #685 to async pr * added missing boost dependency * ignore root build dirs * added missing boost packages dependencies * debug duct tape and more info * removed msvc-specific instruction * tests wait for xpython's ready message instead of sleep * debug duct tape and more info * fi * fix * x6 * one minute * cleaner fix: lock python's GIL when destroying the debugger * cleanup python path deduction unicode-friendly (on windows) and absolute paths * removed debugging logs & cleaned error logs * imrpoved sub-process tracking output in tests * removed commented code * run 20 times on windows * run tests 20 times on unix * show test run number in CI logs * removed changes to python path deduction, improved wrong path detection and report instead * debugger reference decreased instead of object destroyed * removed some logs --------- Co-authored-by: DerThorsten <derthorstenbeier@gmail.com>
JohanMabille
pushed a commit
that referenced
this pull request
Apr 14, 2026
* Fix context errors * Working build * Working without debugger The debugger causes zmq errors somewhere * Not working * Partially working * Working * Rename xhook * Move hook * Add uvw dependency * Ignore pybind11 visibility warning * Clean hook * Clean main * Fix hook implementaion * updates * remove mac-13 * movin find uv related code to non-emscripten branch * working * libuv * libuv * path * path * path * widgets * build xeus-uv * add uvloop * debugger * debugger * remove xeus-uv after building * special win env * use winloop * debug * move * debug * native runner * native runner * native runner * native runner * remove uv * fix debugger bug * fix raw kernel * fix raw kernel * use one global dict * fixes * time based win * time based win * time based win * first c++ tests * remove activation * remove activation * remove activation * remove activation * remove activation * dont build extension * use dummy in stop * activate * build extension again * build extension again * use reader * use reader * use reader * use reader * fix * fix * fix * fix * fix * fixes * fixes * fixes * fixes * fixes * fixes * fixes * fixes * fixes * more * more * more * more * more * more * more * more * more * more * more * more * more * more info * more info * even more * even more * even more * no more specta * no more specta * no more specta * no more specta * no more specta * no more specta * win experiment * win experiment * win experiment * use selector event loop * win experiment * win experiment * adding default runner to xeus python st. we can add cout stuff * missing break * cleanup * applied #685 to async pr * added missing boost dependency * ignore root build dirs * added missing boost packages dependencies * non-buisy * retrigger-ci * try buisy * socket * socket * merged * hidden * add missing method * hidden macro * win fix * debug duct tape and more info * removed msvc-specific instruction * tests wait for xpython's ready message instead of sleep * debug duct tape and more info * fi * fix * x6 * one minute * added eval * run tests 20 times for win * powershell syntax * use default runner * publich error * clean internal request impl * remoev unused file in cmake * fix info request * fix typo like errors * trigger run * cleanup * cleaner fix: lock python's GIL when destroying the debugger * cleanup python path deduction unicode-friendly (on windows) and absolute paths * removed buisy loop * cleanup path * cleanup pass 2 * toplevel await test * cleanup * cleanup * cleanup * cleanup * trigger ci * using released xeus-python-shell * using released xeus-python-shell --------- Co-authored-by: Isabel Paredes <isabel.paredes@quantstack.net> Co-authored-by: Klaim (Joël Lamotte) <142265+Klaim@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Theory this attempts to confirm:
std::systemtakes 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 thexpythonprocess.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:
mainthe c++ tests hang , waiting at thestd::systemcall , waiting for thexpythonprocess to end, even after 8 minutes;