Skip to content

WIP: CPU network SoA dual-write (not for merge) - #3822

Draft
nrnhines wants to merge 20 commits into
masterfrom
local/cpu-network-soa
Draft

WIP: CPU network SoA dual-write (not for merge)#3822
nrnhines wants to merge 20 commits into
masterfrom
local/cpu-network-soa

Fix null-weight SelfEvent temp buffer and init_events null prop

77297b9
Select commit
Loading
Failed to load commit list.
SonarQubeCloud / SonarCloud Code Analysis succeeded Jul 23, 2026 in 6m 25s

Annotations

Check failure on line 135 in test/unit_tests/container/network.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Rewrite the code so that you no longer need this "delete".

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ-MYbLHb7eeMOfNq0uA&open=AZ-MYbLHb7eeMOfNq0uA&pullRequest=3822

Check warning on line 64 in src/nrnoc/point.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Use "contains" member function.

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ-PLHbnK9tMzD4H7OWg&open=AZ-PLHbnK9tMzD4H7OWg&pullRequest=3822

Check warning on line 146 in test/pytest/test_network_soa_delivery.py

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Use the "monkeypatch" fixture for temporary modifications instead of manually modifying global state.

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ-MYbOSb7eeMOfNq0uO&open=AZ-MYbOSb7eeMOfNq0uO&pullRequest=3822

Check failure on line 18 in src/nrncvode/network_soa_sort.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Global variables should be const.

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ-MYbOcb7eeMOfNq0uQ&open=AZ-MYbOcb7eeMOfNq0uQ&pullRequest=3822

Check warning on line 18 in src/neuron/container/network/point_process_access.hpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Make the type of this parameter a pointer-to-const. The current type of "pnt" is "struct Point_process *".

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ-MYbZFb7eeMOfNq0uw&open=AZ-MYbZFb7eeMOfNq0uw&pullRequest=3822

Check warning on line 81 in test/unit_tests/container/network.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Replace with the version of "std::ranges::rotate" that takes a range.

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ-MYbLHb7eeMOfNq0t6&open=AZ-MYbLHb7eeMOfNq0t6&pullRequest=3822

Check warning on line 3230 in src/nrncvode/netcvode.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

"catch" a specific exception type.

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ-MYbSHb7eeMOfNq0uj&open=AZ-MYbSHb7eeMOfNq0uj&pullRequest=3822

Check warning on line 70 in src/nrnoc/point.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Make the type of this variable a pointer-to-const. The current type of "p" is "struct Prop *".

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ-PLHbnK9tMzD4H7OWe&open=AZ-PLHbnK9tMzD4H7OWe&pullRequest=3822

Check failure on line 3348 in src/nrncvode/netcvode.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Explicitly capture the required scope variables.

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ-MYbSHb7eeMOfNq0ul&open=AZ-MYbSHb7eeMOfNq0ul&pullRequest=3822

Check warning on line 243 in src/nrncvode/network_soa_sort.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Make the type of this variable a reference-to-const. The current type of "wh" is "struct neuron::container::network::Weight::owning_handle &".

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ-MYbOcb7eeMOfNq0ua&open=AZ-MYbOcb7eeMOfNq0ua&pullRequest=3822

Check failure on line 85 in test/unit_tests/container/network.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Refactor this code to not nest more than 3 if|for|do|while|switch statements.

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ-MYbLHb7eeMOfNq0t3&open=AZ-MYbLHb7eeMOfNq0t3&pullRequest=3822

Check failure on line 360 in test/unit_tests/container/network.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Global variables should be const.

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ-MYbLHb7eeMOfNq0uJ&open=AZ-MYbLHb7eeMOfNq0uJ&pullRequest=3822

Check failure on line 144 in src/nrncvode/network_soa_sort.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Refactor this function to reduce its Cognitive Complexity from 67 to the 25 allowed.

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ-MYbOcb7eeMOfNq0uW&open=AZ-MYbOcb7eeMOfNq0uW&pullRequest=3822

Check failure on line 653 in src/nrncvode/netcvode.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Rewrite the code so that you no longer need this "delete".

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ-MYbSHb7eeMOfNq0uc&open=AZ-MYbSHb7eeMOfNq0uc&pullRequest=3822

Check failure on line 3348 in src/nrncvode/netcvode.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Explicitly capture all local variables required in this lambda.

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ-MYbSHb7eeMOfNq0um&open=AZ-MYbSHb7eeMOfNq0um&pullRequest=3822

Check warning on line 89 in src/nrncvode/network_soa_sort.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Use the init-statement to declare "row" inside the if statement.

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ-MYbOcb7eeMOfNq0uS&open=AZ-MYbOcb7eeMOfNq0uS&pullRequest=3822

Check warning on line 309 in src/nrncvode/network_soa_sort.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Use the init-statement to declare "fp" inside the if statement.

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ-MYbOcb7eeMOfNq0uV&open=AZ-MYbOcb7eeMOfNq0uV&pullRequest=3822

Check warning on line 241 in test/unit_tests/container/network.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Replace with the version of "std::ranges::rotate" that takes a range.

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ-MYbLHb7eeMOfNq0uE&open=AZ-MYbLHb7eeMOfNq0uE&pullRequest=3822

Check warning on line 276 in test/unit_tests/container/network.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Use "std::array" or "std::vector" instead of a C-style array.

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ-MYbLHb7eeMOfNq0uH&open=AZ-MYbLHb7eeMOfNq0uH&pullRequest=3822

Check warning on line 318 in test/unit_tests/container/network.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Replace with the version of "std::ranges::rotate" that takes a range.

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ-MYbLHb7eeMOfNq0uI&open=AZ-MYbLHb7eeMOfNq0uI&pullRequest=3822

Check failure on line 141 in test/unit_tests/container/network.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Potential leak of memory pointed to by 'pp'

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ-PYaP4E2HCc5z430_6&open=AZ-PYaP4E2HCc5z430_6&pullRequest=3822

Check failure on line 172 in test/unit_tests/container/network.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Refactor this code to not nest more than 3 if|for|do|while|switch statements.

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ-MYbLHb7eeMOfNq0uB&open=AZ-MYbLHb7eeMOfNq0uB&pullRequest=3822

Check warning on line 269 in test/unit_tests/container/network.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Make the type of this variable a reference-to-const. The current type of "store" is "struct neuron::container::network::Weight::storage &".

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ-MYbLHb7eeMOfNq0uF&open=AZ-MYbLHb7eeMOfNq0uF&pullRequest=3822

Check warning on line 107 in test/unit_tests/container/network.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Make sure that using this pseudorandom number generator "shuffle" is safe here.

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ-MYbLHb7eeMOfNq0t8&open=AZ-MYbLHb7eeMOfNq0t8&pullRequest=3822

Check warning on line 2277 in src/nrncvode/netcvode.cpp

See this annotation in the file changed.

@sonarqubecloud sonarqubecloud / SonarCloud Code Analysis

Make the type of this parameter a pointer-to-const. The current type of "pnt" is "struct Point_process *".

See more on https://sonarcloud.io/project/issues?id=neuronsimulator_nrn&issues=AZ-MYbSHb7eeMOfNq0ue&open=AZ-MYbSHb7eeMOfNq0ue&pullRequest=3822