From 0cb0024779249e51b195ca9bd5abaa37a150ae28 Mon Sep 17 00:00:00 2001 From: anutosh491 Date: Thu, 20 Nov 2025 22:58:38 +0530 Subject: [PATCH 1/3] Update wasm exception handling model (use wasm-exceptions instead of exceptions) Add tests --- .github/workflows/deploy-github-page.yml | 3 -- .github/workflows/main.yml | 3 -- CMakeLists.txt | 2 + CONTRIBUTING.md | 5 +- README.md | 5 +- docs/source/InstallationAndUsage.rst | 5 +- environment-wasm-build.yml | 4 +- environment-wasm-host.yml | 2 +- .../jupyter/kernels/xc11/wasm_kernel.json.in | 3 +- .../jupyter/kernels/xc17/wasm_kernel.json.in | 3 +- .../jupyter/kernels/xc23/wasm_kernel.json.in | 3 +- .../kernels/xcpp17/wasm_kernel.json.in | 4 +- .../kernels/xcpp20/wasm_kernel.json.in | 4 +- .../kernels/xcpp23/wasm_kernel.json.in | 4 +- test/CMakeLists.txt | 6 +-- test/test_interpreter.cpp | 49 ++++++++++++++++++- 16 files changed, 70 insertions(+), 35 deletions(-) diff --git a/.github/workflows/deploy-github-page.yml b/.github/workflows/deploy-github-page.yml index cef776cb..4c02343d 100644 --- a/.github/workflows/deploy-github-page.yml +++ b/.github/workflows/deploy-github-page.yml @@ -56,9 +56,6 @@ jobs: echo "PREFIX=$PREFIX" >> $GITHUB_ENV export SYSROOT_PATH=$BUILD_PREFIX/opt/emsdk/upstream/emscripten/cache/sysroot - micromamba create -n node-env -c conda-forge nodejs=22 - export PATH="$MAMBA_ROOT_PREFIX/envs/node-env/bin:$PATH" - emcmake cmake \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=$PREFIX \ diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 2c2c8071..12347af5 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -241,9 +241,6 @@ jobs: echo "PREFIX=$PREFIX" >> $GITHUB_ENV export SYSROOT_PATH=$BUILD_PREFIX/opt/emsdk/upstream/emscripten/cache/sysroot - micromamba create -n node-env -c conda-forge nodejs=22 - export PATH="$MAMBA_ROOT_PREFIX/envs/node-env/bin:$PATH" - emcmake cmake \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=$PREFIX \ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2bcd8d07..3361f5f5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -219,6 +219,8 @@ macro(xeus_cpp_set_common_options target_name) target_compile_options(${target_name} PUBLIC /wd4251 /wd4141) target_compile_options(${target_name} PUBLIC /wd4018 /wd4267 /wd4715 /wd4146 /wd4129) target_compile_options(${target_name} PUBLIC /EHsc) + elseif (EMSCRIPTEN) + target_compile_options(${target_name} PUBLIC -fwasm-exceptions) else () target_compile_options(${target_name} PUBLIC -fexceptions) endif () diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2a2d9a23..a08e7b26 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -71,7 +71,7 @@ micromamba create -f environment-wasm-build.yml -y micromamba activate xeus-cpp-wasm-build ``` -You are now in a position to build the xeus-cpp kernel. You build and test it in node by executing the following. Prefer using node 22 and above as prior versions lead to flaky test runs. Once the test pass, run the install command. +You are now in a position to build the xeus-cpp kernel. You build and test it in node by executing the following. Once the test pass, run the install command. ```bash micromamba create -f environment-wasm-host.yml --platform=emscripten-wasm32 @@ -81,9 +81,6 @@ export BUILD_PREFIX=$MAMBA_ROOT_PREFIX/envs/xeus-cpp-wasm-build export PREFIX=$MAMBA_ROOT_PREFIX/envs/xeus-cpp-wasm-host export SYSROOT_PATH=$BUILD_PREFIX/opt/emsdk/upstream/emscripten/cache/sysroot -micromamba create -n node-env -c conda-forge nodejs=22 -export PATH="$MAMBA_ROOT_PREFIX/envs/node-env/bin:$PATH" - emcmake cmake \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=$PREFIX \ diff --git a/README.md b/README.md index 341d0203..8f11eeb5 100644 --- a/README.md +++ b/README.md @@ -87,7 +87,7 @@ micromamba create -f environment-wasm-build.yml -y micromamba activate xeus-cpp-wasm-build ``` -You are now in a position to build the xeus-cpp kernel. You build and test it in node by executing the following. Prefer using node 22 and above as prior versions lead to flaky test runs. Once the test pass, run the install command. +You are now in a position to build the xeus-cpp kernel. You build and test it in node by executing the following. Once the test pass, run the install command. ```bash micromamba create -f environment-wasm-host.yml --platform=emscripten-wasm32 mkdir build @@ -96,9 +96,6 @@ export BUILD_PREFIX=$MAMBA_ROOT_PREFIX/envs/xeus-cpp-wasm-build export PREFIX=$MAMBA_ROOT_PREFIX/envs/xeus-cpp-wasm-host export SYSROOT_PATH=$BUILD_PREFIX/opt/emsdk/upstream/emscripten/cache/sysroot -micromamba create -n node-env -c conda-forge nodejs=22 -export PATH="$MAMBA_ROOT_PREFIX/envs/node-env/bin:$PATH" - emcmake cmake \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=$PREFIX \ diff --git a/docs/source/InstallationAndUsage.rst b/docs/source/InstallationAndUsage.rst index aa242dc2..24213ca0 100644 --- a/docs/source/InstallationAndUsage.rst +++ b/docs/source/InstallationAndUsage.rst @@ -66,7 +66,7 @@ the following micromamba create -f environment-wasm-build.yml -y micromamba activate xeus-cpp-wasm-build -You are now in a position to build the xeus-cpp kernel. You build and test it in node by executing the following. Prefer using node 22 and above as prior versions lead to flaky test runs. Once the test pass, run the install command. +You are now in a position to build the xeus-cpp kernel. You build and test it in node by executing the following. Once the test pass, run the install command. .. code-block:: bash @@ -77,9 +77,6 @@ You are now in a position to build the xeus-cpp kernel. You build and test it in export PREFIX=$MAMBA_ROOT_PREFIX/envs/xeus-cpp-wasm-host export SYSROOT_PATH=$BUILD_PREFIX/opt/emsdk/upstream/emscripten/cache/sysroot - micromamba create -n node-env -c conda-forge nodejs=22 - export PATH="$MAMBA_ROOT_PREFIX/envs/node-env/bin:$PATH" - emcmake cmake \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=$PREFIX \ diff --git a/environment-wasm-build.yml b/environment-wasm-build.yml index cf716ed5..be953293 100644 --- a/environment-wasm-build.yml +++ b/environment-wasm-build.yml @@ -1,7 +1,7 @@ name: xeus-cpp-wasm-build channels: - - https://prefix.dev/emscripten-forge-dev + - https://prefix.dev/emscripten-forge-4x - https://prefix.dev/conda-forge dependencies: - cmake - - emscripten_emscripten-wasm32==3.1.73 \ No newline at end of file + - emscripten_emscripten-wasm32==4.0.9 \ No newline at end of file diff --git a/environment-wasm-host.yml b/environment-wasm-host.yml index 54aa77ca..0230026c 100644 --- a/environment-wasm-host.yml +++ b/environment-wasm-host.yml @@ -1,6 +1,6 @@ name: xeus-cpp-wasm-host channels: - - https://prefix.dev/emscripten-forge-dev + - https://prefix.dev/emscripten-forge-4x - https://prefix.dev/conda-forge dependencies: - nlohmann_json diff --git a/share/jupyter/kernels/xc11/wasm_kernel.json.in b/share/jupyter/kernels/xc11/wasm_kernel.json.in index 009f8a98..a6ea1929 100644 --- a/share/jupyter/kernels/xc11/wasm_kernel.json.in +++ b/share/jupyter/kernels/xc11/wasm_kernel.json.in @@ -6,7 +6,8 @@ "-Xclang", "-iwithsysroot/include/compat", "-xc", "-std=c11", - "-mllvm", "-enable-emscripten-sjlj", + "-fwasm-exceptions", + "-mllvm", "-wasm-enable-sjlj", "-msimd128" ], "language": "c", diff --git a/share/jupyter/kernels/xc17/wasm_kernel.json.in b/share/jupyter/kernels/xc17/wasm_kernel.json.in index 4d6e92a4..d55a4b59 100644 --- a/share/jupyter/kernels/xc17/wasm_kernel.json.in +++ b/share/jupyter/kernels/xc17/wasm_kernel.json.in @@ -6,7 +6,8 @@ "-Xclang", "-iwithsysroot/include/compat", "-xc", "-std=c17", - "-mllvm", "-enable-emscripten-sjlj", + "-fwasm-exceptions", + "-mllvm", "-wasm-enable-sjlj", "-msimd128" ], "language": "c", diff --git a/share/jupyter/kernels/xc23/wasm_kernel.json.in b/share/jupyter/kernels/xc23/wasm_kernel.json.in index 9913d6ea..c733cd3e 100644 --- a/share/jupyter/kernels/xc23/wasm_kernel.json.in +++ b/share/jupyter/kernels/xc23/wasm_kernel.json.in @@ -6,7 +6,8 @@ "-Xclang", "-iwithsysroot/include/compat", "-xc", "-std=c23", - "-mllvm", "-enable-emscripten-sjlj", + "-fwasm-exceptions", + "-mllvm", "-wasm-enable-sjlj", "-msimd128" ], "language": "c", diff --git a/share/jupyter/kernels/xcpp17/wasm_kernel.json.in b/share/jupyter/kernels/xcpp17/wasm_kernel.json.in index a8de4ed0..bcd75ded 100644 --- a/share/jupyter/kernels/xcpp17/wasm_kernel.json.in +++ b/share/jupyter/kernels/xcpp17/wasm_kernel.json.in @@ -4,8 +4,8 @@ "@XEUS_CPP_KERNELSPEC_PATH@xcpp", "-resource-dir", "/lib/clang/@CPPINTEROP_LLVM_VERSION_MAJOR@", "-Xclang", "-iwithsysroot/include/compat", - "-std=c++17", "-mllvm", "-enable-emscripten-cxx-exceptions", - "-mllvm", "-enable-emscripten-sjlj", "-msimd128" + "-std=c++17", "-fwasm-exceptions", + "-mllvm", "-wasm-enable-sjlj", "-msimd128" ], "language": "cpp", "metadata": { diff --git a/share/jupyter/kernels/xcpp20/wasm_kernel.json.in b/share/jupyter/kernels/xcpp20/wasm_kernel.json.in index a36fa59b..b7cfd673 100644 --- a/share/jupyter/kernels/xcpp20/wasm_kernel.json.in +++ b/share/jupyter/kernels/xcpp20/wasm_kernel.json.in @@ -4,8 +4,8 @@ "@XEUS_CPP_KERNELSPEC_PATH@xcpp", "-resource-dir", "/lib/clang/@CPPINTEROP_LLVM_VERSION_MAJOR@", "-Xclang", "-iwithsysroot/include/compat", - "-std=c++20", "-mllvm", "-enable-emscripten-cxx-exceptions", - "-mllvm", "-enable-emscripten-sjlj", "-msimd128" + "-std=c++20", "-fwasm-exceptions", + "-mllvm", "-wasm-enable-sjlj", "-msimd128" ], "language": "cpp", "metadata": { diff --git a/share/jupyter/kernels/xcpp23/wasm_kernel.json.in b/share/jupyter/kernels/xcpp23/wasm_kernel.json.in index 3fdd0422..960a7963 100644 --- a/share/jupyter/kernels/xcpp23/wasm_kernel.json.in +++ b/share/jupyter/kernels/xcpp23/wasm_kernel.json.in @@ -4,8 +4,8 @@ "@XEUS_CPP_KERNELSPEC_PATH@xcpp", "-resource-dir", "/lib/clang/@CPPINTEROP_LLVM_VERSION_MAJOR@", "-Xclang", "-iwithsysroot/include/compat", - "-std=c++23", "-mllvm", "-enable-emscripten-cxx-exceptions", - "-mllvm", "-enable-emscripten-sjlj", "-msimd128" + "-std=c++23", "-fwasm-exceptions", + "-mllvm", "-wasm-enable-sjlj", "-msimd128" ], "language": "cpp", "metadata": { diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 01c013ba..b74d2d28 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -54,7 +54,7 @@ if(EMSCRIPTEN) target_link_libraries(test_xeus_cpp PRIVATE xeus-cpp-static doctest::doctest) target_compile_options(test_xeus_cpp - PUBLIC "SHELL: -fexceptions" + PUBLIC "SHELL: -fwasm-exceptions" ) # So we create a html file, as well as the javascript file set_target_properties(test_xeus_cpp PROPERTIES @@ -67,10 +67,10 @@ if(EMSCRIPTEN) # Without this MINIFY_HTML=0 flag you end up with the situation where the creation of the # test_xeus_cpp.html file breaks on MacOS, but not Ubuntu target_link_options(test_xeus_cpp - PUBLIC "SHELL: -fexceptions" + PUBLIC "SHELL: -fwasm-exceptions" PUBLIC "SHELL: -s MAIN_MODULE=1" PUBLIC "SHELL: -s WASM_BIGINT" - PUBLIC "SHELL: -s ASSERTIONS=1" + PUBLIC "SHELL: -s ASSERTIONS=0" PUBLIC "SHELL: -s ALLOW_MEMORY_GROWTH=1" PUBLIC "SHELL: -s STACK_SIZE=32mb" PUBLIC "SHELL: -s INITIAL_MEMORY=128mb" diff --git a/test/test_interpreter.cpp b/test/test_interpreter.cpp index 3c66443b..3bdb32d2 100644 --- a/test/test_interpreter.cpp +++ b/test/test_interpreter.cpp @@ -70,7 +70,10 @@ TEST_SUITE("execute_request") { TEST_CASE("stl") { - std::vector Args = {"stl-test-case", "-v"}; + std::vector Args = { + "-v", + "-Xclang", "-iwithsysroot/include/compat" + }; xcpp::interpreter interpreter((int)Args.size(), Args.data()); std::string code = "#include "; nl::json user_expressions = nl::json::object(); @@ -136,6 +139,45 @@ TEST_SUITE("execute_request") } #endif +#if defined(XEUS_CPP_EMSCRIPTEN_WASM_BUILD) + TEST_CASE("Emscripten Exception Handling") + { + std::vector Args = { + "-std=c++20", + "-v", + "-fwasm-exceptions", + "-mllvm", "-wasm-enable-sjlj" + }; + + xcpp::interpreter interpreter((int)Args.size(), Args.data()); + std::string code = "try { throw 1; } catch (...) { 0; }"; + nl::json user_expressions = nl::json::object(); + xeus::execute_request_config config; + config.silent = false; + config.store_history = false; + config.allow_stdin = false; + nl::json header = nl::json::object(); + xeus::xrequest_context::guid_list id = {}; + xeus::xrequest_context context(header, id); + + std::promise promise; + std::future future = promise.get_future(); + auto callback = [&promise](nl::json result) { + promise.set_value(result); + }; + + interpreter.execute_request( + std::move(context), + std::move(callback), + code, + std::move(config), + user_expressions + ); + nl::json result = future.get(); + REQUIRE(result["status"] == "ok"); + } +#endif + TEST_CASE("fetch_documentation") { std::vector Args = {/*"-v", "resource-dir", "....."*/}; @@ -810,7 +852,10 @@ TEST_SUITE("complete_request") { TEST_CASE("completion_test") { - std::vector Args = {/*"-v", "resource-dir", "....."*/}; + std::vector Args = { + "-v", + "-Xclang", "-iwithsysroot/include/compat" + }; xcpp::interpreter interpreter((int)Args.size(), Args.data()); std::string code1 = "#include "; nl::json user_expressions = nl::json::object(); From 4ae19d323d945ac7c576033f4c2fa37e7698e6f2 Mon Sep 17 00:00:00 2001 From: anutosh491 Date: Thu, 27 Nov 2025 10:49:12 +0530 Subject: [PATCH 2/3] Use jupyterlite-xeus 4.3.0 --- .github/workflows/deploy-github-page.yml | 2 +- .github/workflows/main.yml | 2 +- CONTRIBUTING.md | 2 +- README.md | 2 +- docs/source/InstallationAndUsage.rst | 2 +- docs/source/conf.py | 3 +-- 6 files changed, 6 insertions(+), 7 deletions(-) diff --git a/.github/workflows/deploy-github-page.yml b/.github/workflows/deploy-github-page.yml index 4c02343d..4a0b8527 100644 --- a/.github/workflows/deploy-github-page.yml +++ b/.github/workflows/deploy-github-page.yml @@ -139,7 +139,7 @@ jobs: - name: Jupyter Lite integration shell: bash -l {0} run: | - micromamba create -n xeus-lite-host jupyterlite-core=0.6 jupyter_server jupyterlite-xeus -c conda-forge + micromamba create -n xeus-lite-host jupyter_server jupyterlite-xeus -c conda-forge micromamba activate xeus-lite-host jupyter lite build \ --XeusAddon.prefix=${{ env.PREFIX }} \ diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 12347af5..f143bb20 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -329,7 +329,7 @@ jobs: - name: Jupyter Lite integration shell: bash -l {0} run: | - micromamba create -n xeus-lite-host jupyterlite-core=0.6 jupyterlite-xeus -c conda-forge + micromamba create -n xeus-lite-host jupyterlite-xeus -c conda-forge micromamba activate xeus-lite-host jupyter lite build --XeusAddon.prefix=${{ env.PREFIX }} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a08e7b26..08f5badb 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -151,7 +151,7 @@ python $BUILD_PREFIX/bin/emrun.py --browser="google-chrome" --kill_exit --timeou To build and test Jupyter Lite with this kernel locally you can execute the following ```bash -micromamba create -n xeus-lite-host jupyterlite-core=0.6 jupyter_server jupyterlite-xeus -c conda-forge +micromamba create -n xeus-lite-host jupyter_server jupyterlite-xeus -c conda-forge micromamba activate xeus-lite-host jupyter lite serve --XeusAddon.prefix=$PREFIX \ --XeusAddon.mounts="$PREFIX/share/xeus-cpp/tagfiles:/share/xeus-cpp/tagfiles" \ diff --git a/README.md b/README.md index 8f11eeb5..39a4edf4 100644 --- a/README.md +++ b/README.md @@ -166,7 +166,7 @@ python $BUILD_PREFIX/bin/emrun.py --browser="google-chrome" --kill_exit --timeou To build and test Jupyter Lite with this kernel locally you can execute the following ```bash -micromamba create -n xeus-lite-host jupyterlite-core=0.6 jupyter_server jupyterlite-xeus -c conda-forge +micromamba create -n xeus-lite-host jupyter_server jupyterlite-xeus -c conda-forge micromamba activate xeus-lite-host jupyter lite serve --XeusAddon.prefix=$PREFIX \ --XeusAddon.mounts="$PREFIX/share/xeus-cpp/tagfiles:/share/xeus-cpp/tagfiles" \ diff --git a/docs/source/InstallationAndUsage.rst b/docs/source/InstallationAndUsage.rst index 24213ca0..bd8eb2b8 100644 --- a/docs/source/InstallationAndUsage.rst +++ b/docs/source/InstallationAndUsage.rst @@ -148,7 +148,7 @@ To build and test Jupyter Lite with this kernel locally you can execute the foll .. code-block:: bash - micromamba create -n xeus-lite-host jupyterlite-core=0.6 jupyter_server jupyterlite-xeus -c conda-forge + micromamba create -n xeus-lite-host jupyter_server jupyterlite-xeus -c conda-forge micromamba activate xeus-lite-host jupyter lite serve --XeusAddon.prefix=$PREFIX --XeusAddon.mounts="$PREFIX/share/xeus-cpp/tagfiles:/share/xeus-cpp/tagfiles" \ diff --git a/docs/source/conf.py b/docs/source/conf.py index 8854709f..0e76813c 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -34,9 +34,8 @@ {XEUS_CPP_ROOT}; emmake make -j $(nproc --all) install; cd {XEUS_CPP_ROOT}; -micromamba create -n xeus-lite-host jupyterlite-core=0.6 jupyter_server jupyterlite-xeus -c conda-forge -y; +micromamba create -n xeus-lite-host jupyter_server jupyterlite-xeus -c conda-forge -y; micromamba activate xeus-lite-host; -python -m pip install jupyterlite-xeus jupyter_server; jupyter lite build --XeusAddon.prefix=$PREFIX \\ --XeusAddon.mounts="$PREFIX/share/xeus-cpp/tagfiles:/share/xeus-cpp/tagfiles" \ --XeusAddon.mounts="$PREFIX/etc/xeus-cpp/tags.d:/etc/xeus-cpp/tags.d" \ From a509dbab89d65e3fb6d211f1774ba6ff44ad28e6 Mon Sep 17 00:00:00 2001 From: anutosh491 Date: Tue, 2 Dec 2025 15:36:11 +0530 Subject: [PATCH 3/3] Update host env install command --- .github/workflows/deploy-github-page.yml | 5 ++++- .github/workflows/main.yml | 5 ++++- CONTRIBUTING.md | 6 +++++- README.md | 6 +++++- docs/source/InstallationAndUsage.rst | 6 +++++- docs/source/conf.py | 5 ++++- 6 files changed, 27 insertions(+), 6 deletions(-) diff --git a/.github/workflows/deploy-github-page.yml b/.github/workflows/deploy-github-page.yml index 4a0b8527..16ace823 100644 --- a/.github/workflows/deploy-github-page.yml +++ b/.github/workflows/deploy-github-page.yml @@ -45,7 +45,10 @@ jobs: - name: Build and test xeus-cpp in node, then install shell: bash -l {0} run: | - micromamba create -f environment-wasm-host.yml --platform=emscripten-wasm32 + micromamba create -f environment-wasm-host.yml \ + --platform=emscripten-wasm32 \ + -c https://prefix.dev/emscripten-forge-4x \ + -c https://prefix.dev/conda-forge mkdir build pushd build diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f143bb20..b04cf21b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -230,7 +230,10 @@ jobs: - name: Build and test xeus-cpp in node, then install shell: bash -l {0} run: | - micromamba create -f environment-wasm-host.yml --platform=emscripten-wasm32 + micromamba create -f environment-wasm-host.yml \ + --platform=emscripten-wasm32 \ + -c https://prefix.dev/emscripten-forge-4x \ + -c https://prefix.dev/conda-forge mkdir build pushd build diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 08f5badb..0670385d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -74,7 +74,11 @@ micromamba activate xeus-cpp-wasm-build You are now in a position to build the xeus-cpp kernel. You build and test it in node by executing the following. Once the test pass, run the install command. ```bash -micromamba create -f environment-wasm-host.yml --platform=emscripten-wasm32 +micromamba create -f environment-wasm-host.yml \ +--platform=emscripten-wasm32 \ +-c https://prefix.dev/emscripten-forge-4x \ +-c https://prefix.dev/conda-forge + mkdir build cd build export BUILD_PREFIX=$MAMBA_ROOT_PREFIX/envs/xeus-cpp-wasm-build diff --git a/README.md b/README.md index 39a4edf4..06068c4b 100644 --- a/README.md +++ b/README.md @@ -89,7 +89,11 @@ micromamba activate xeus-cpp-wasm-build You are now in a position to build the xeus-cpp kernel. You build and test it in node by executing the following. Once the test pass, run the install command. ```bash -micromamba create -f environment-wasm-host.yml --platform=emscripten-wasm32 +micromamba create -f environment-wasm-host.yml \ +--platform=emscripten-wasm32 \ +-c https://prefix.dev/emscripten-forge-4x \ +-c https://prefix.dev/conda-forge + mkdir build cd build export BUILD_PREFIX=$MAMBA_ROOT_PREFIX/envs/xeus-cpp-wasm-build diff --git a/docs/source/InstallationAndUsage.rst b/docs/source/InstallationAndUsage.rst index bd8eb2b8..3a69670f 100644 --- a/docs/source/InstallationAndUsage.rst +++ b/docs/source/InstallationAndUsage.rst @@ -70,7 +70,11 @@ You are now in a position to build the xeus-cpp kernel. You build and test it in .. code-block:: bash - micromamba create -f environment-wasm-host.yml --platform=emscripten-wasm32 + micromamba create -f environment-wasm-host.yml \ + --platform=emscripten-wasm32 \ + -c https://prefix.dev/emscripten-forge-4x \ + -c https://prefix.dev/conda-forge + mkdir build cd build export BUILD_PREFIX=$MAMBA_ROOT_PREFIX/envs/xeus-cpp-wasm-build diff --git a/docs/source/conf.py b/docs/source/conf.py index 0e76813c..2df01a35 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -19,7 +19,10 @@ alias micromamba="$MAMBA_EXE"; micromamba create -f environment-wasm-build.yml -y; micromamba activate xeus-cpp-wasm-build; -micromamba create -f environment-wasm-host.yml --platform=emscripten-wasm32; +micromamba create -f environment-wasm-host.yml \ +--platform=emscripten-wasm32 \ +-c https://prefix.dev/emscripten-forge-4x \ +-c https://prefix.dev/conda-forge mkdir -p build; cd build; export BUILD_PREFIX=$MAMBA_ROOT_PREFIX/xeus-cpp-wasm-build;