From 30eb0dd7ca117260a618143a4e66a62398ee5797 Mon Sep 17 00:00:00 2001 From: A-DaRo Date: Sun, 23 Nov 2025 20:24:28 +0100 Subject: [PATCH 1/6] Fix failing examples and implement missing instructions in NVProcessor This PR addresses failures in example_bqc_nv_constraint.py, example_bqc_nv.py, and example_fidelity.py by implementing missing instruction handling in NVProcessor and updating the fidelity constraint example to correctly handle sequential EPR generation on NV hardware. --- .../fidelity_constraint/example_fidelity.py | 43 ++++++++++++++----- squidasm/nqasm/executor/nv.py | 2 + squidasm/sim/network/network.py | 1 + squidasm/sim/stack/processor.py | 29 +++++++++++++ 4 files changed, 65 insertions(+), 10 deletions(-) diff --git a/examples/advanced/fidelity_constraint/example_fidelity.py b/examples/advanced/fidelity_constraint/example_fidelity.py index eb78a2b5..6127c18e 100644 --- a/examples/advanced/fidelity_constraint/example_fidelity.py +++ b/examples/advanced/fidelity_constraint/example_fidelity.py @@ -5,6 +5,9 @@ from typing import Any, Dict, Generator import netsquid as ns +from netqasm.sdk.connection import BaseNetQASMConnection +from netqasm.sdk.futures import RegFuture +from netqasm.sdk.qubit import Qubit from pydynaa import EventExpression from squidasm.run.stack.config import StackNetworkConfig @@ -53,16 +56,25 @@ def run( conn = context.connection epr_socket = context.epr_sockets[self.PEER] - eprs = epr_socket.create_keep( - number=2, min_fidelity_all_at_end=70, max_tries=20 - ) + outcomes = conn.new_array(length=2) + + def post_create(_: BaseNetQASMConnection, q: Qubit, index: RegFuture): + q.measure(future=outcomes.get_future_index(index)) - m0 = eprs[0].measure() - m1 = eprs[1].measure() + epr_socket.create_keep( + number=2, + min_fidelity_all_at_end=70, + max_tries=20, + sequential=True, + post_routine=post_create, + ) yield from conn.flush() - return {"m0": int(m0), "m1": int(m1)} + m0 = int(outcomes.get_future_index(0)) + m1 = int(outcomes.get_future_index(1)) + + return {"m0": m0, "m1": m1} class ServerProgram(Program): @@ -83,14 +95,25 @@ def run( conn = context.connection epr_socket = context.epr_sockets[self.PEER] - eprs = epr_socket.recv_keep(number=2, min_fidelity_all_at_end=70, max_tries=20) + outcomes = conn.new_array(length=2) - m0 = eprs[0].measure() - m1 = eprs[1].measure() + def post_recv(_: BaseNetQASMConnection, q: Qubit, index: RegFuture): + q.measure(future=outcomes.get_future_index(index)) + + epr_socket.recv_keep( + number=2, + min_fidelity_all_at_end=70, + max_tries=20, + sequential=True, + post_routine=post_recv, + ) yield from conn.flush() - return {"m0": int(m0), "m1": int(m1)} + m0 = int(outcomes.get_future_index(0)) + m1 = int(outcomes.get_future_index(1)) + + return {"m0": m0, "m1": m1} PI = math.pi diff --git a/squidasm/nqasm/executor/nv.py b/squidasm/nqasm/executor/nv.py index 666912ab..6cb59be4 100644 --- a/squidasm/nqasm/executor/nv.py +++ b/squidasm/nqasm/executor/nv.py @@ -12,6 +12,7 @@ INSTR_ROT_X, INSTR_ROT_Y, INSTR_ROT_Z, + INSTR_SWAP, ) from netsquid.nodes.node import Node as NetSquidNode @@ -27,6 +28,7 @@ nv.RotZInstruction: INSTR_ROT_Z, nv.ControlledRotXInstruction: INSTR_CXDIR, nv.ControlledRotYInstruction: INSTR_CYDIR, + nv.MovInstruction: INSTR_SWAP, } diff --git a/squidasm/sim/network/network.py b/squidasm/sim/network/network.py index 61f1197c..535dc7f6 100644 --- a/squidasm/sim/network/network.py +++ b/squidasm/sim/network/network.py @@ -551,6 +551,7 @@ def __init__( PhysicalInstruction(ns_instructions.INSTR_ROT_Z, duration=2), PhysicalInstruction(ns_instructions.INSTR_CXDIR, duration=5), PhysicalInstruction(ns_instructions.INSTR_CYDIR, duration=5), + PhysicalInstruction(ns_instructions.INSTR_SWAP, duration=5), ] super().__init__( diff --git a/squidasm/sim/stack/processor.py b/squidasm/sim/stack/processor.py index 3180b596..c24d294e 100644 --- a/squidasm/sim/stack/processor.py +++ b/squidasm/sim/stack/processor.py @@ -173,6 +173,7 @@ def execute_subroutine( self, subroutine: Subroutine ) -> Generator[EventExpression, None, None]: """Execute a NetQASM subroutine on this processor.""" + self._logger.info(f"Executing subroutine {subroutine}") app_id = subroutine.app_id assert app_id in self.app_memories app_mem = self.app_memories[app_id] @@ -230,6 +231,8 @@ def _interpret_instruction( pass elif isinstance(instr, core.SingleQubitInstruction): return self._interpret_single_qubit_instr(app_id, instr) + elif isinstance(instr, vanilla.MovInstruction) or isinstance(instr, nv.MovInstruction): + return self._interpret_mov(app_id, instr) elif isinstance(instr, core.TwoQubitInstruction): return self._interpret_two_qubit_instr(app_id, instr) elif isinstance(instr, core.RotationInstruction): @@ -288,6 +291,12 @@ def _interpret_set(self, app_id: int, instr: core.SetInstruction) -> None: self._logger.debug(f"Set register {instr.reg} to {instr.imm}") self.app_memories[app_id].set_reg_value(instr.reg, instr.imm.value) + def _interpret_mov(self, app_id: int, instr: vanilla.MovInstruction) -> None: + self._logger.debug(f"Moving value from {instr.reg1} to {instr.reg0}") + app_mem = self.app_memories[app_id] + val = app_mem.get_reg_value(instr.reg1) + app_mem.set_reg_value(instr.reg0, val) + def _interpret_qalloc(self, app_id: int, instr: core.QAllocInstruction) -> None: app_mem = self.app_memories[app_id] @@ -883,3 +892,23 @@ def _interpret_controlled_rotation_instr( yield from self._do_controlled_rotation(app_id, instr, INSTR_CYDIR) else: raise RuntimeError(f"Unsupported instruction {instr}") + + def _interpret_two_qubit_instr( + self, app_id: int, instr: core.SingleQubitInstruction + ) -> Generator[EventExpression, None, None]: + app_mem = self.app_memories[app_id] + virt_id0 = app_mem.get_reg_value(instr.reg0) + phys_id0 = app_mem.phys_id_for(virt_id0) + virt_id1 = app_mem.get_reg_value(instr.reg1) + phys_id1 = app_mem.phys_id_for(virt_id1) + + if isinstance(instr, vanilla.CnotInstruction): + prog = QuantumProgram() + prog.apply(INSTR_CNOT, qubit_indices=[phys_id0, phys_id1]) + yield self.qdevice.execute_program(prog) + elif isinstance(instr, vanilla.CphaseInstruction): + prog = QuantumProgram() + prog.apply(INSTR_CZ, qubit_indices=[phys_id0, phys_id1]) + yield self.qdevice.execute_program(prog) + else: + raise RuntimeError(f"Unsupported instruction {instr}") From 035fcb1f3d22276bedf5768aed88c42f22fc4874 Mon Sep 17 00:00:00 2001 From: mvanhooft Date: Thu, 18 Dec 2025 14:33:56 +0100 Subject: [PATCH 2/6] Revert example_fidelity.py to original --- .../fidelity_constraint/example_fidelity.py | 43 +++++-------------- 1 file changed, 10 insertions(+), 33 deletions(-) diff --git a/examples/advanced/fidelity_constraint/example_fidelity.py b/examples/advanced/fidelity_constraint/example_fidelity.py index 6127c18e..eb78a2b5 100644 --- a/examples/advanced/fidelity_constraint/example_fidelity.py +++ b/examples/advanced/fidelity_constraint/example_fidelity.py @@ -5,9 +5,6 @@ from typing import Any, Dict, Generator import netsquid as ns -from netqasm.sdk.connection import BaseNetQASMConnection -from netqasm.sdk.futures import RegFuture -from netqasm.sdk.qubit import Qubit from pydynaa import EventExpression from squidasm.run.stack.config import StackNetworkConfig @@ -56,25 +53,16 @@ def run( conn = context.connection epr_socket = context.epr_sockets[self.PEER] - outcomes = conn.new_array(length=2) - - def post_create(_: BaseNetQASMConnection, q: Qubit, index: RegFuture): - q.measure(future=outcomes.get_future_index(index)) - - epr_socket.create_keep( - number=2, - min_fidelity_all_at_end=70, - max_tries=20, - sequential=True, - post_routine=post_create, + eprs = epr_socket.create_keep( + number=2, min_fidelity_all_at_end=70, max_tries=20 ) - yield from conn.flush() + m0 = eprs[0].measure() + m1 = eprs[1].measure() - m0 = int(outcomes.get_future_index(0)) - m1 = int(outcomes.get_future_index(1)) + yield from conn.flush() - return {"m0": m0, "m1": m1} + return {"m0": int(m0), "m1": int(m1)} class ServerProgram(Program): @@ -95,25 +83,14 @@ def run( conn = context.connection epr_socket = context.epr_sockets[self.PEER] - outcomes = conn.new_array(length=2) + eprs = epr_socket.recv_keep(number=2, min_fidelity_all_at_end=70, max_tries=20) - def post_recv(_: BaseNetQASMConnection, q: Qubit, index: RegFuture): - q.measure(future=outcomes.get_future_index(index)) - - epr_socket.recv_keep( - number=2, - min_fidelity_all_at_end=70, - max_tries=20, - sequential=True, - post_routine=post_recv, - ) + m0 = eprs[0].measure() + m1 = eprs[1].measure() yield from conn.flush() - m0 = int(outcomes.get_future_index(0)) - m1 = int(outcomes.get_future_index(1)) - - return {"m0": m0, "m1": m1} + return {"m0": int(m0), "m1": int(m1)} PI = math.pi From a4790dbfa24f24b042f9ec4468fa466eb7bfa7b8 Mon Sep 17 00:00:00 2001 From: mvanhooft Date: Tue, 13 Jan 2026 11:09:10 +0100 Subject: [PATCH 3/6] Update netqasm requirement --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 1d037fbf..b6a3ccca 100644 --- a/setup.cfg +++ b/setup.cfg @@ -23,7 +23,7 @@ install_requires = netsquid >=1.1.2, <2.0 netsquid-magic >= 16.0.0, <17.0.0 bitarray >=2.8.0, <3.0.0 - netqasm >=0.11.2 + netqasm >=2.2.1 pytest >=7.1, <8.0 [options.extras_require] From 8b87ff691737c1502482b0204380ed5c9bae2c6a Mon Sep 17 00:00:00 2001 From: mvanhooft Date: Wed, 14 Jan 2026 16:11:23 +0100 Subject: [PATCH 4/6] Change all max_qubits=1 to max_qubits=2 in ProgramMeta Remove interpret_two_qubit_instr --- .../link_layer/example_link_layer_ck.py | 4 ++-- .../link_layer/example_link_layer_md.py | 4 ++-- .../example_ll_custom_subrt.py | 4 ++-- .../single_node/example_single_node.py | 2 +- examples/applications/qkd/example_qkd.py | 4 ++-- examples/applications/qkd/example_use_qkd.py | 4 ++-- examples/tutorial/1_Basics/application.py | 4 ++-- .../2.1_NetQASM-language/application.py | 4 ++-- .../2.2_Future-objects/application.py | 4 ++-- .../tutorial/4.3_multi-node/application.py | 4 ++-- squidasm/sim/stack/processor.py | 20 ------------------- .../test_classical_communication.py | 4 ++-- tests/test_qnodeos.py | 2 +- 13 files changed, 22 insertions(+), 42 deletions(-) diff --git a/examples/advanced/link_layer/example_link_layer_ck.py b/examples/advanced/link_layer/example_link_layer_ck.py index 2940092d..e97c75fb 100644 --- a/examples/advanced/link_layer/example_link_layer_ck.py +++ b/examples/advanced/link_layer/example_link_layer_ck.py @@ -21,7 +21,7 @@ def meta(self) -> ProgramMeta: name="client_program", csockets=[self.PEER], epr_sockets=[self.PEER], - max_qubits=1, + max_qubits=2, ) def run( @@ -67,7 +67,7 @@ def meta(self) -> ProgramMeta: name="server_program", csockets=[self.PEER], epr_sockets=[self.PEER], - max_qubits=1, + max_qubits=2, ) def run( diff --git a/examples/advanced/link_layer/example_link_layer_md.py b/examples/advanced/link_layer/example_link_layer_md.py index 0c22156b..28b62da2 100644 --- a/examples/advanced/link_layer/example_link_layer_md.py +++ b/examples/advanced/link_layer/example_link_layer_md.py @@ -23,7 +23,7 @@ def meta(self) -> ProgramMeta: name="client_program", csockets=[self.PEER], epr_sockets=[self.PEER], - max_qubits=1, + max_qubits=2, ) def run( @@ -54,7 +54,7 @@ def meta(self) -> ProgramMeta: name="server_program", csockets=[self.PEER], epr_sockets=[self.PEER], - max_qubits=1, + max_qubits=2, ) def run( diff --git a/examples/advanced/link_layer_custom_subrt/example_ll_custom_subrt.py b/examples/advanced/link_layer_custom_subrt/example_ll_custom_subrt.py index d59b50cf..1904fcce 100644 --- a/examples/advanced/link_layer_custom_subrt/example_ll_custom_subrt.py +++ b/examples/advanced/link_layer_custom_subrt/example_ll_custom_subrt.py @@ -101,7 +101,7 @@ def meta(self) -> ProgramMeta: name="client_program", csockets=[self.PEER], epr_sockets=[self.PEER], - max_qubits=1, + max_qubits=2, ) def run( @@ -147,7 +147,7 @@ def meta(self) -> ProgramMeta: name="server_program", csockets=[self.PEER], epr_sockets=[self.PEER], - max_qubits=1, + max_qubits=2, ) def run( diff --git a/examples/advanced/single_node/example_single_node.py b/examples/advanced/single_node/example_single_node.py index c7460f04..c827e4ea 100644 --- a/examples/advanced/single_node/example_single_node.py +++ b/examples/advanced/single_node/example_single_node.py @@ -31,7 +31,7 @@ def meta(self) -> ProgramMeta: name="client_program", csockets=[], epr_sockets=[], - max_qubits=1, + max_qubits=2, ) def run( diff --git a/examples/applications/qkd/example_qkd.py b/examples/applications/qkd/example_qkd.py index bd46b4f3..51a905a0 100644 --- a/examples/applications/qkd/example_qkd.py +++ b/examples/applications/qkd/example_qkd.py @@ -163,7 +163,7 @@ def meta(self) -> ProgramMeta: name="alice_program", csockets=[self.PEER], epr_sockets=[self.PEER], - max_qubits=1, + max_qubits=2, ) def run( @@ -204,7 +204,7 @@ def meta(self) -> ProgramMeta: name="bob_program", csockets=[self.PEER], epr_sockets=[self.PEER], - max_qubits=1, + max_qubits=2, ) def run( diff --git a/examples/applications/qkd/example_use_qkd.py b/examples/applications/qkd/example_use_qkd.py index fce27d51..d0090282 100644 --- a/examples/applications/qkd/example_use_qkd.py +++ b/examples/applications/qkd/example_use_qkd.py @@ -24,7 +24,7 @@ def meta(self) -> ProgramMeta: name="alice_program", csockets=[self.PEER], epr_sockets=[self.PEER], - max_qubits=1, + max_qubits=2, ) def run( @@ -76,7 +76,7 @@ def meta(self) -> ProgramMeta: name="bob_program", csockets=[self.PEER], epr_sockets=[self.PEER], - max_qubits=1, + max_qubits=2, ) def run( diff --git a/examples/tutorial/1_Basics/application.py b/examples/tutorial/1_Basics/application.py index 00effd86..b15a6db0 100644 --- a/examples/tutorial/1_Basics/application.py +++ b/examples/tutorial/1_Basics/application.py @@ -15,7 +15,7 @@ def meta(self) -> ProgramMeta: name="tutorial_program", csockets=[self.PEER_NAME], epr_sockets=[self.PEER_NAME], - max_qubits=1, + max_qubits=2, ) def run(self, context: ProgramContext): @@ -65,7 +65,7 @@ def meta(self) -> ProgramMeta: name="tutorial_program", csockets=[self.PEER_NAME], epr_sockets=[self.PEER_NAME], - max_qubits=1, + max_qubits=2, ) def run(self, context: ProgramContext): diff --git a/examples/tutorial/2.1_NetQASM-language/application.py b/examples/tutorial/2.1_NetQASM-language/application.py index 45d8a976..2de9a93e 100644 --- a/examples/tutorial/2.1_NetQASM-language/application.py +++ b/examples/tutorial/2.1_NetQASM-language/application.py @@ -13,7 +13,7 @@ def meta(self) -> ProgramMeta: name="tutorial_program", csockets=[self.PEER_NAME], epr_sockets=[self.PEER_NAME], - max_qubits=1, + max_qubits=2, ) def run(self, context: ProgramContext): @@ -43,7 +43,7 @@ def meta(self) -> ProgramMeta: name="tutorial_program", csockets=[self.PEER_NAME], epr_sockets=[self.PEER_NAME], - max_qubits=1, + max_qubits=2, ) def run(self, context: ProgramContext): diff --git a/examples/tutorial/2.2_Future-objects/application.py b/examples/tutorial/2.2_Future-objects/application.py index dd3ff587..35910098 100644 --- a/examples/tutorial/2.2_Future-objects/application.py +++ b/examples/tutorial/2.2_Future-objects/application.py @@ -13,7 +13,7 @@ def meta(self) -> ProgramMeta: name="tutorial_program", csockets=[self.PEER_NAME], epr_sockets=[self.PEER_NAME], - max_qubits=1, + max_qubits=2, ) def run(self, context: ProgramContext): @@ -55,7 +55,7 @@ def meta(self) -> ProgramMeta: name="tutorial_program", csockets=[self.PEER_NAME], epr_sockets=[self.PEER_NAME], - max_qubits=1, + max_qubits=2, ) def run(self, context: ProgramContext): diff --git a/examples/tutorial/4.3_multi-node/application.py b/examples/tutorial/4.3_multi-node/application.py index 0d5ed400..a50116f2 100644 --- a/examples/tutorial/4.3_multi-node/application.py +++ b/examples/tutorial/4.3_multi-node/application.py @@ -64,7 +64,7 @@ def meta(self) -> ProgramMeta: name="tutorial_program", csockets=[self.PEER], epr_sockets=[self.PEER], - max_qubits=1, + max_qubits=2, ) def run(self, context: ProgramContext): @@ -96,7 +96,7 @@ def meta(self) -> ProgramMeta: name="tutorial_program", csockets=[self.PEER], epr_sockets=[self.PEER], - max_qubits=1, + max_qubits=2, ) def run(self, context: ProgramContext): diff --git a/squidasm/sim/stack/processor.py b/squidasm/sim/stack/processor.py index c24d294e..4d45be5b 100644 --- a/squidasm/sim/stack/processor.py +++ b/squidasm/sim/stack/processor.py @@ -892,23 +892,3 @@ def _interpret_controlled_rotation_instr( yield from self._do_controlled_rotation(app_id, instr, INSTR_CYDIR) else: raise RuntimeError(f"Unsupported instruction {instr}") - - def _interpret_two_qubit_instr( - self, app_id: int, instr: core.SingleQubitInstruction - ) -> Generator[EventExpression, None, None]: - app_mem = self.app_memories[app_id] - virt_id0 = app_mem.get_reg_value(instr.reg0) - phys_id0 = app_mem.phys_id_for(virt_id0) - virt_id1 = app_mem.get_reg_value(instr.reg1) - phys_id1 = app_mem.phys_id_for(virt_id1) - - if isinstance(instr, vanilla.CnotInstruction): - prog = QuantumProgram() - prog.apply(INSTR_CNOT, qubit_indices=[phys_id0, phys_id1]) - yield self.qdevice.execute_program(prog) - elif isinstance(instr, vanilla.CphaseInstruction): - prog = QuantumProgram() - prog.apply(INSTR_CZ, qubit_indices=[phys_id0, phys_id1]) - yield self.qdevice.execute_program(prog) - else: - raise RuntimeError(f"Unsupported instruction {instr}") diff --git a/tests/system_tests/test_classical_communication.py b/tests/system_tests/test_classical_communication.py index c919ea31..e562f86e 100644 --- a/tests/system_tests/test_classical_communication.py +++ b/tests/system_tests/test_classical_communication.py @@ -36,7 +36,7 @@ def meta(self) -> ProgramMeta: name="test_program", csockets=list(self.per_peer_messages.keys()), epr_sockets=[], - max_qubits=1, + max_qubits=2, ) def run(self, context: ProgramContext): @@ -65,7 +65,7 @@ def meta(self) -> ProgramMeta: name="test_program", csockets=list(self.per_peer_expect_num_messages.keys()), epr_sockets=[], - max_qubits=1, + max_qubits=2, ) def run(self, context: ProgramContext): diff --git a/tests/test_qnodeos.py b/tests/test_qnodeos.py index 4682bf06..a9561e88 100644 --- a/tests/test_qnodeos.py +++ b/tests/test_qnodeos.py @@ -44,7 +44,7 @@ def test(): bytes( InitNewAppMessage( app_id=app_id, - max_qubits=1, + max_qubits=2, ) ), ) From 0f1bea6e290704ef5c6666830d5e20b3c1a03151 Mon Sep 17 00:00:00 2001 From: mvanhooft Date: Wed, 14 Jan 2026 17:11:33 +0100 Subject: [PATCH 5/6] Fix bug when max_qubits=1 in programMeta by waiting for a message from NetStack in epr pair generation Revert some examples to use max_qubits=1 --- examples/applications/qkd/example_qkd.py | 4 ++-- examples/applications/qkd/example_use_qkd.py | 4 ++-- squidasm/sim/stack/processor.py | 10 +++++----- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/examples/applications/qkd/example_qkd.py b/examples/applications/qkd/example_qkd.py index 51a905a0..bd46b4f3 100644 --- a/examples/applications/qkd/example_qkd.py +++ b/examples/applications/qkd/example_qkd.py @@ -163,7 +163,7 @@ def meta(self) -> ProgramMeta: name="alice_program", csockets=[self.PEER], epr_sockets=[self.PEER], - max_qubits=2, + max_qubits=1, ) def run( @@ -204,7 +204,7 @@ def meta(self) -> ProgramMeta: name="bob_program", csockets=[self.PEER], epr_sockets=[self.PEER], - max_qubits=2, + max_qubits=1, ) def run( diff --git a/examples/applications/qkd/example_use_qkd.py b/examples/applications/qkd/example_use_qkd.py index d0090282..fce27d51 100644 --- a/examples/applications/qkd/example_use_qkd.py +++ b/examples/applications/qkd/example_use_qkd.py @@ -24,7 +24,7 @@ def meta(self) -> ProgramMeta: name="alice_program", csockets=[self.PEER], epr_sockets=[self.PEER], - max_qubits=2, + max_qubits=1, ) def run( @@ -76,7 +76,7 @@ def meta(self) -> ProgramMeta: name="bob_program", csockets=[self.PEER], epr_sockets=[self.PEER], - max_qubits=2, + max_qubits=1, ) def run( diff --git a/squidasm/sim/stack/processor.py b/squidasm/sim/stack/processor.py index 4d45be5b..1895c9d3 100644 --- a/squidasm/sim/stack/processor.py +++ b/squidasm/sim/stack/processor.py @@ -231,7 +231,9 @@ def _interpret_instruction( pass elif isinstance(instr, core.SingleQubitInstruction): return self._interpret_single_qubit_instr(app_id, instr) - elif isinstance(instr, vanilla.MovInstruction) or isinstance(instr, nv.MovInstruction): + elif isinstance(instr, vanilla.MovInstruction) or isinstance( + instr, nv.MovInstruction + ): return self._interpret_mov(app_id, instr) elif isinstance(instr, core.TwoQubitInstruction): return self._interpret_two_qubit_instr(app_id, instr) @@ -552,8 +554,7 @@ def _interpret_create_epr( result_array_addr, ) self._send_netstack_msg(msg) - # result = yield from self._receive_netstack_msg() - # self._logger.debug(f"result from netstack: {result}") + yield from self._receive_netstack_msg() def _interpret_recv_epr(self, app_id: int, instr: core.RecvEPRInstruction) -> None: app_mem = self.app_memories[app_id] @@ -581,8 +582,7 @@ def _interpret_recv_epr(self, app_id: int, instr: core.RecvEPRInstruction) -> No result_array_addr, ) self._send_netstack_msg(msg) - # result = yield from self._receive_netstack_msg() - # self._logger.debug(f"result from netstack: {result}") + yield from self._receive_netstack_msg() def _interpret_wait_all( self, app_id: int, instr: core.WaitAllInstruction From 45b745b29a23f9db87ba5ba3155583d43a90e574 Mon Sep 17 00:00:00 2001 From: mvanhooft Date: Wed, 14 Jan 2026 17:18:04 +0100 Subject: [PATCH 6/6] Add Alessandro Da Ros as a contributor for being part of this bugfix --- README.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/README.rst b/README.rst index 578ba337..4dcb57be 100644 --- a/README.rst +++ b/README.rst @@ -145,6 +145,7 @@ Contributors =============== In alphabetical order: +* Alessandro Da Ros * Axel Dahlberg * Bart van der Vecht (b.vandervecht[at]tudelft.nl) * Michaɫ van Hooft (M.K.vanHooft@tudelft.nl)