nest / nestml

A domain specific language for neuron and synapse models in spiking neural network simulation
GNU General Public License v2.0
46 stars 45 forks source link

`nest.ResetKernel()` resets installed modules #1054

Closed alberto-antonietti closed 4 months ago

alberto-antonietti commented 4 months ago

Hello!

Passing from NESTML 7.0 and NEST 3.6 to current master NESTML and NEST 3.7 introduced this change in the behaviour.

If you execute nest.ResetKernel() after having loaded (nest.Install()) your NESTML-compiled module makes the module uninstalled.

E.g., you can't use the neuron models installed with the new module unless you re-run nest.Install()

Before this was not happening, the model was staying installed and if you tried to re-run nest.Install() you got the "Module '...' is loaded already error.

You can test running for instance:

nest.Install(your_module)
nest.ResetKernel()
nest.Install(your_module)

Is this wanted or not? I am not sure if this is more a NESTML or a NEST thing.

alberto-antonietti commented 4 months ago

CC @rbonometto

clinssen commented 4 months ago

Hi Alberto, this is indeed true! It is related to the change in NEST Simulator (https://github.com/nest/nest-simulator/pull/3103) and was introduced in NESTML 7.0.1 (see the release notes at https://github.com/nest/nestml/releases). Sorry, but your scripts will need to be adjusted going forward.

alberto-antonietti commented 4 months ago

Hi Charl, perfect, thanks for the info! Will take this into account and adapt our scripts!