Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Expression not assignable in dopamine modulated STDP synapse #840

Closed
ewa8 opened this issue Nov 14, 2022 · 7 comments
Closed

Expression not assignable in dopamine modulated STDP synapse #840

ewa8 opened this issue Nov 14, 2022 · 7 comments

Comments

@ewa8
Copy link

ewa8 commented Nov 14, 2022

Hi, I'm following the NESTML tutorial for the dopamine modulated STDP synapse (https://nestml.readthedocs.io/en/latest/tutorials/stdp_dopa_synapse/stdp_dopa_synapse.html) and I'm getting the following error while running the generate_nest_target function from the code:

target/msnff3d16d131484a588d128b3206348245_nestml__with_neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml.cpp:651:84: error: expression is not assignable
S_.post_tr__for_neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml += 1.0;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^

@pnbabu
Copy link
Contributor

pnbabu commented Nov 15, 2022

@ewa thanks for writing in. Could you provide more information like the CMake output and the rest of the compilation logs? Could you also attach the generated code from NESTML? The generated files must be in the target directory from where the notebook is running.

@ewa8
Copy link
Author

ewa8 commented Nov 15, 2022

Here are the generated files:

neuron msnff3d16d131484a588d128b3206348245:
  state:
    V_m mV = -65.0 mV
    U_m real = 0.0
    I pA = 0.0 pA # input current
    dop real = 0.0
  end
  equations:
    kernel kernel_ampa = exp(-t/tau_decay_AMPA)
    kernel kernel_nmda = exp(-t/tau_decay_NMDA)
    kernel kernel_gaba = exp(-t/tau_decay_GABA_A)

    inline I_syn_ampa pA = convolve(kernel_ampa, spikes_ampa)
    inline I_syn_nmda pA = convolve(kernel_nmda, spikes_nmda)
    inline I_syn_gaba pA = convolve(kernel_gaba, spikes_gaba)

    inline ampa pA = I_syn_ampa * (E_rev_AMPA - V_m)
    inline nmda pA = I_syn_nmda * (E_rev_NMDA - V_m)
    inline I_gaba pA = I_syn_gaba * (E_rev_GABA_A - V_m)

    inline I_nmda pA = nmda * (1.0 + alpha_1*y1)
    inline I_ampa pA = ampa * (1.0 - alpha_2*y2)
    inline B real = 1.0/(1.0+(0.28)*exp(-0.062*V_m))

    inline I_syn pA = I_ampa + B*I_nmda + I_gaba
    inline v_r mV = vp * (1.0 + c_1 * y1)
    inline k real = Kplus * (1.0 - alpha * y2)

    V_m' = (k * (V_m - v_r) * (V_m - V_T)/mV - U_m*mV + ((I + I_e + I_syn)* GOhm))/ (C_m*(ms/pF))
    U_m' = a * (b * (V_m - v_r) - U_m*mV)/(mV * ms)
  end

  parameters:
    a real = 0.03
    b real = -2.0
    c mV = -50 mV
    d real = 100
    I_e pA = 0pA # constant external input current
    V_th mV = 35mV #V peak
    V_min mV = -inf * mV
    Kplus real = 0.7
    vp mV = -60.0 mV #resting potential
    V_T mV = -40.0 mV #threshold potential
    C_m pF = 100.0 pF # membrane capacitance
    c_1 real = 0.0289 # K
    c_2 real = 0.331 # L
    y1 real = 0.3 # active D1 receptors
    y2 real = 0.3 # active D2 receptors
    alpha_1 real = 0.5 # synaptic dopamine
    alpha_2 real = 0.5 # synaptic dopamine
    alpha real = 0.032
    tau_decay_AMPA ms = 2.0 ms
    tau_decay_GABA_A ms = 2.0 ms
    tau_decay_NMDA ms = 2.0 ms
    E_rev_AMPA real = 0.0
    E_rev_GABA_A real = 0.0
    E_rev_NMDA real = 0.0

  end
  input:
    spikes_ampa mV <-spike
    spikes_nmda mV <-spike
    spikes_gaba mV <-spike
    I_stim pA <-continuous
  end

  output: spike

  update:
    integrate_odes()
    # Add synaptic current

    # lower bound of membrane potential
    V_m = (V_m < V_min)?V_min:V_m

    # threshold crossing
    if V_m >= 30mV:
      dop = d * (1.0 - c_2 * y1)
      V_m = c
      U_m += dop
      emit_spike()
    end
  end
end
synapse neuromodulated_stdpff3d16d131484a588d128b3206348245:

  state:
    w real = 1.
    n real = 0.   # Neuromodulator concentration
    c real = 0.   # Eligibility trace
    pre_tr real = 0.
    post_tr real = 0.
  end

  parameters:
    the_delay ms = 1 ms  @nest::delay   # !!! cannot have a variable called "delay"
    tau_tr_pre ms = 20 ms   # STDP time constant for weight changes caused by pre-before-post spike pairings.
    tau_tr_post ms = 20 ms    # STDP time constant for weight changes caused by post-before-pre spike pairings.
    tau_c ms = 1000 ms    # Time constant of eligibility trace
    tau_n ms = 200 ms   # Time constant of dopaminergic trace
    b real = 0.   # Dopaminergic baseline concentration
    Wmax real = 200.    # Maximal synaptic weight
    Wmin real = 0.    # Minimal synaptic weight
    A_plus real = 1.    # Multiplier applied to weight changes caused by pre-before-post spike pairings. If b (dopamine baseline concentration) is zero, then A_plus is simply the multiplier for facilitation (as in the stdp_synapse model). If b is not zero, then A_plus will be the multiplier for facilitation only if n - b is positive, where n is the instantenous dopamine concentration in the volume transmitter. If n - b is negative, A_plus will be the multiplier for depression.
    A_minus real = 1.5    # Multiplier applied to weight changes caused by post-before-pre spike pairings. If b (dopamine baseline concentration) is zero, then A_minus is simply the multiplier for depression (as in the stdp_synapse model). If b is not zero, then A_minus will be the multiplier for depression only if n - b is positive, where n is the instantenous dopamine concentration in the volume transmitter. If n - b is negative, A_minus will be the multiplier for facilitation.
    A_vt real = 1.     # Multiplier applied to dopa spikes
  end

  equations:
    pre_tr' = -pre_tr / tau_tr_pre
    post_tr' = -post_tr / tau_tr_post
  end

  internals:
    tau_s 1/ms = (tau_c + tau_n) / (tau_c * tau_n)
  end

  input:
    pre_spikes nS <- spike
    post_spikes nS <- spike
    mod_spikes real <- spike
  end

  output: spike

  onReceive(mod_spikes):
    n += A_vt / tau_n
  end

  onReceive(post_spikes):
    post_tr += 1.

    # facilitation
    c += A_plus * pre_tr
  end

  onReceive(pre_spikes):
    pre_tr += 1.

    # depression
    c -= A_minus * post_tr

    # deliver spike to postsynaptic partner
    deliver_spike(w, the_delay)
  end

  # update from time t to t + resolution()
  update:
    # resolution() returns the timestep to be made (in units of time)
    # the sequence here matters: the update step for w requires the "old" values of c and n
    w -= c * ( n / tau_s * expm1( -tau_s * resolution() ) \
             - b * tau_c * expm1( -resolution() / tau_c ))
    w = max(0., w)
    c = c * exp(-resolution() / tau_c)
    n = n * exp(-resolution() / tau_n)
  end

end

And here are the latest logs (let me know if you also need some of the earlier logs):

[74,msnff3d16d131484a588d128b3206348245_nestml__with_neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml, INFO, [37:13;37:13]]: Implicit casting from (compatible) type 'integer' to 'real'.
[75,GLOBAL, INFO]: Analysing/transforming synapse neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml.
[76,neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml, INFO, [1:0;74:0]]: Starts processing of the model 'neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml'
[77,neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml, DEBUG, [1:0;74:0]]: Start building symbol table!
[78,neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml, INFO, [43:9;43:16]]: Implicit casting from (compatible) type '1 / ms' to 'real'.
[79,neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml, INFO, [67:9;68:57]]: Implicit casting from (compatible) type 'ms' to 'real'.
[80,neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml, DEBUG, [1:0;74:0]]: Start building symbol table!
[81,neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml, INFO, [43:9;43:16]]: Implicit casting from (compatible) type '1 / ms' to 'real'.
[82,neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml, INFO, [67:9;68:57]]: Implicit casting from (compatible) type 'ms' to 'real'.
[83,GLOBAL, INFO]: Rendering template /Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/msnff3d16d131484a588d128b3206348245_nestml.cpp
[84,GLOBAL, INFO]: Rendering template /Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/msnff3d16d131484a588d128b3206348245_nestml.h
[85,msnff3d16d131484a588d128b3206348245_nestml, INFO, [1:0;84:0]]: Successfully generated code for the model: 'msnff3d16d131484a588d128b3206348245_nestml' in: '/Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target' !
[86,GLOBAL, INFO]: Rendering template /Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/msnff3d16d131484a588d128b3206348245_nestml__with_neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml.cpp
[87,GLOBAL, INFO]: Rendering template /Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/msnff3d16d131484a588d128b3206348245_nestml__with_neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml.h
[88,msnff3d16d131484a588d128b3206348245_nestml__with_neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml, INFO, [1:0;84:0]]: Successfully generated code for the model: 'msnff3d16d131484a588d128b3206348245_nestml__with_neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml' in: '/Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target' !
[89,GLOBAL, INFO]: Rendering template /Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml.h
[90,neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml, INFO, [1:0;74:0]]: Successfully generated code for the model: 'neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml' in: '/Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target' !
[91,GLOBAL, INFO]: Rendering template /Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/CMakeLists.txt
[92,GLOBAL, INFO]: Rendering template /Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/nestml_ff3d16d131484a588d128b3206348245_module.h
[93,GLOBAL, INFO]: Rendering template /Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/nestml_ff3d16d131484a588d128b3206348245_module.cpp
[94,GLOBAL, INFO]: Rendering template /Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/CMakeLists.txt
[95,GLOBAL, INFO]: Rendering template /Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/nestml_ff3d16d131484a588d128b3206348245_module.h
[96,GLOBAL, INFO]: Rendering template /Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/nestml_ff3d16d131484a588d128b3206348245_module.cpp
[97,GLOBAL, INFO]: Rendering template /Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/CMakeLists.txt
[98,GLOBAL, INFO]: Rendering template /Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/nestml_ff3d16d131484a588d128b3206348245_module.h
[99,GLOBAL, INFO]: Rendering template /Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/nestml_ff3d16d131484a588d128b3206348245_module.cpp
[100,GLOBAL, INFO]: Successfully generated NEST module code in '/Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target' !
-- The CXX compiler identification is AppleClang 14.0.0.14000029
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done

-------------------------------------------------------
nestml_ff3d16d131484a588d128b3206348245_module Configuration Summary
-------------------------------------------------------

C++ compiler         : /usr/bin/clang++
Build static libs    : OFF
C++ compiler flags   : 
NEST compiler flags  :  -O2 -std=c++11 -Wall -Xclang -fopenmp  -O3 -DNDEBUG
NEST include dirs    :  -I/opt/homebrew/Cellar/nest/3.3_1/include/nest -I/opt/homebrew/include -I/opt/homebrew/opt/readline/include -I/opt/homebrew/include
NEST libraries flags : -L/opt/homebrew/Cellar/nest/3.3_1/lib/nest -lnestutil -lnest -lsli -lnestkernel -Xclang -fopenmp /opt/homebrew/lib/libltdl.dylib /opt/homebrew/opt/readline/lib/libreadline.dylib /Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/lib/libncurses.tbd /opt/homebrew/lib/libgsl.dylib /opt/homebrew/lib/libgslcblas.dylib

-------------------------------------------------------

You can now build and install 'nestml_ff3d16d131484a588d128b3206348245_module' using
  make
  make install

The library file libnestml_ff3d16d131484a588d128b3206348245_module.so will be installed to
  /opt/homebrew/Cellar/nest/3.3_1/lib/nest
The module can be loaded into NEST using
  (nestml_ff3d16d131484a588d128b3206348245_module) Install       (in SLI)
  nest.Install(nestml_ff3d16d131484a588d128b3206348245_module)   (in PyNEST)

CMake Warning (dev) in CMakeLists.txt:
  No cmake_minimum_required command is present.  A line of code such as

    cmake_minimum_required(VERSION 3.22)

  should be added at the top of the file.  The version specified may be lower
  if you wish to support older CMake versions for this project.  For more
  information run "cmake --help-policy CMP0000".
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Configuring done
-- Generating done
-- Build files have been written to: /Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target
[ 25%] Building CXX object CMakeFiles/nestml_ff3d16d131484a588d128b3206348245_module_module.dir/nestml_ff3d16d131484a588d128b3206348245_module.o
In file included from /Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/nestml_ff3d16d131484a588d128b3206348245_module.cpp:47:
/Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/msnff3d16d131484a588d128b3206348245_nestml.h:372:17: warning: 'msnff3d16d131484a588d128b3206348245_nestml::get_C_m' hides overloaded virtual function [-Woverloaded-virtual]
  inline double get_C_m() const
                ^
/opt/homebrew/Cellar/nest/3.3_1/include/nest/node.h:689:18: note: hidden overloaded virtual function 'nest::Node::get_C_m' declared here: different number of parameters (1 vs 0)
  virtual double get_C_m( int comp );
                 ^
In file included from /Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/nestml_ff3d16d131484a588d128b3206348245_module.cpp:49:
/Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/msnff3d16d131484a588d128b3206348245_nestml__with_neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml.h:425:17: warning: 'msnff3d16d131484a588d128b3206348245_nestml__with_neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml::get_C_m' hides overloaded virtual function [-Woverloaded-virtual]
  inline double get_C_m() const
                ^
/opt/homebrew/Cellar/nest/3.3_1/include/nest/node.h:689:18: note: hidden overloaded virtual function 'nest::Node::get_C_m' declared here: different number of parameters (1 vs 0)
  virtual double get_C_m( int comp );
                 ^
In file included from /Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/nestml_ff3d16d131484a588d128b3206348245_module.cpp:49:
/Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/msnff3d16d131484a588d128b3206348245_nestml__with_neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml.h:234:8: warning: 'register_stdp_connection' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  void register_stdp_connection( double t_first_read, double delay );
       ^
/opt/homebrew/Cellar/nest/3.3_1/include/nest/node.h:457:16: note: overridden virtual function is here
  virtual void register_stdp_connection( double, double );
               ^
In file included from /Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/nestml_ff3d16d131484a588d128b3206348245_module.cpp:52:
/Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml.h:593:22: warning: unused variable 'minus_dt' [-Wunused-variable]
        const double minus_dt = t_lastspike_ - ( start->t_ + __dendritic_delay );
                     ^
/Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml.h:616:22: warning: unused variable '_tr_t' [-Wunused-variable]
        const double _tr_t = start->t_;      
                     ^
/Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml.h:543:18: warning: unused variable '__resolution' [-Wunused-variable]
    const double __resolution = nest::Time::get_resolution().get_ms();  // do not remove, this is necessary for the resolution() function
                 ^
/Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml.h:733:12: warning: unused variable 'cd' [-Wunused-variable]
    double cd;
           ^
/Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml.h:889:16: warning: unused variable '__resolution' [-Wunused-variable]
  const double __resolution = nest::Time::get_resolution().get_ms();  // do not remove, this is necessary for the resolution() function
               ^
/Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml.h:904:16: warning: unused variable '__resolution' [-Wunused-variable]
  const double __resolution = nest::Time::get_resolution().get_ms();  // do not remove, this is necessary for the resolution() function
               ^
/Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml.h:1053:18: warning: unused variable '_tr_t' [-Wunused-variable]
    const double _tr_t = start->t_;
                 ^
/Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml.h:1035:10: warning: unused variable 'timestep' [-Wunused-variable]
  double timestep = 0;
         ^
/Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml.h:545:10: warning: unused variable 'get_thread' [-Wunused-variable]
    auto get_thread = [tid]()
         ^
/opt/homebrew/Cellar/nest/3.3_1/include/nest/connector_base.h:379:18: note: in instantiation of member function 'nest::neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml<nest::TargetIdentifierPtrRport>::send' requested here
      C_[ lcid ].send(
                 ^
/opt/homebrew/Cellar/nest/3.3_1/include/nest/connector_base.h:223:12: note: in instantiation of member function 'nest::Connector<nest::neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml<nest::TargetIdentifierPtrRport>>::send_to_all' requested here
  explicit Connector( const synindex syn_id )
           ^
/opt/homebrew/Cellar/nest/3.3_1/include/nest/connector_model_impl.h:271:45: note: in instantiation of member function 'nest::Connector<nest::neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml<nest::TargetIdentifierPtrRport>>::Connector' requested here
    thread_local_connectors[ syn_id ] = new Connector< ConnectionT >( syn_id );
                                            ^
/opt/homebrew/Cellar/nest/3.3_1/include/nest/connector_model_impl.h:252:3: note: in instantiation of member function 'nest::GenericConnectorModel<nest::neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml<nest::TargetIdentifierPtrRport>>::add_connection_' requested here
  add_connection_( src, tgt, thread_local_connectors, syn_id, connection, actual_receptor_type );
  ^
/opt/homebrew/Cellar/nest/3.3_1/include/nest/connector_model.h:183:3: note: in instantiation of member function 'nest::GenericConnectorModel<nest::neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml<nest::TargetIdentifierPtrRport>>::add_connection' requested here
  GenericConnectorModel( const std::string name,
  ^
/opt/homebrew/Cellar/nest/3.3_1/include/nest/model_manager_impl.h:61:28: note: in instantiation of member function 'nest::GenericConnectorModel<nest::neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml<nest::TargetIdentifierPtrRport>>::GenericConnectorModel' requested here
  ConnectorModel* cf = new GenericConnectorModel< ConnectionT< TargetIdentifierPtrRport > >( name,
                           ^
/opt/homebrew/Cellar/nest/3.3_1/include/nest/nest_impl.h:35:26: note: in instantiation of function template specialization 'nest::ModelManager::register_connection_model<nest::neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml>' requested here
  kernel().model_manager.register_connection_model< ConnectorModelT >( name, flags );
                         ^
/Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/nestml_ff3d16d131484a588d128b3206348245_module.cpp:113:9: note: in instantiation of function template specialization 'nest::register_connection_model<nest::neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml>' requested here
  nest::register_connection_model< nest::neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml >( "neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml" );
        ^
In file included from /Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/nestml_ff3d16d131484a588d128b3206348245_module.cpp:52:
/Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml.h:525:7: warning: expression result unused [-Wunused-value]
      dynamic_cast<msnff3d16d131484a588d128b3206348245_nestml__with_neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml&>(t);
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/homebrew/Cellar/nest/3.3_1/include/nest/connector_model_impl.h:276:14: note: in instantiation of member function 'nest::neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml<nest::TargetIdentifierPtrRport>::check_connection' requested here
  connection.check_connection( src, tgt, receptor_type, get_common_properties() );
             ^
/opt/homebrew/Cellar/nest/3.3_1/include/nest/connector_model_impl.h:252:3: note: in instantiation of member function 'nest::GenericConnectorModel<nest::neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml<nest::TargetIdentifierPtrRport>>::add_connection_' requested here
  add_connection_( src, tgt, thread_local_connectors, syn_id, connection, actual_receptor_type );
  ^
/opt/homebrew/Cellar/nest/3.3_1/include/nest/connector_model.h:183:3: note: in instantiation of member function 'nest::GenericConnectorModel<nest::neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml<nest::TargetIdentifierPtrRport>>::add_connection' requested here
  GenericConnectorModel( const std::string name,
  ^
/opt/homebrew/Cellar/nest/3.3_1/include/nest/model_manager_impl.h:61:28: note: in instantiation of member function 'nest::GenericConnectorModel<nest::neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml<nest::TargetIdentifierPtrRport>>::GenericConnectorModel' requested here
  ConnectorModel* cf = new GenericConnectorModel< ConnectionT< TargetIdentifierPtrRport > >( name,
                           ^
/opt/homebrew/Cellar/nest/3.3_1/include/nest/nest_impl.h:35:26: note: in instantiation of function template specialization 'nest::ModelManager::register_connection_model<nest::neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml>' requested here
  kernel().model_manager.register_connection_model< ConnectorModelT >( name, flags );
                         ^
/Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/nestml_ff3d16d131484a588d128b3206348245_module.cpp:113:9: note: in instantiation of function template specialization 'nest::register_connection_model<nest::neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml>' requested here
  nest::register_connection_model< nest::neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml >( "neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml" );
        ^
In file included from /Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/nestml_ff3d16d131484a588d128b3206348245_module.cpp:52:
/Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml.h:545:10: warning: unused variable 'get_thread' [-Wunused-variable]
    auto get_thread = [tid]()
         ^
/opt/homebrew/Cellar/nest/3.3_1/include/nest/connector_base.h:379:18: note: in instantiation of member function 'nest::neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml<nest::TargetIdentifierIndex>::send' requested here
      C_[ lcid ].send(
                 ^
/opt/homebrew/Cellar/nest/3.3_1/include/nest/connector_base.h:223:12: note: in instantiation of member function 'nest::Connector<nest::neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml<nest::TargetIdentifierIndex>>::send_to_all' requested here
  explicit Connector( const synindex syn_id )
           ^
/opt/homebrew/Cellar/nest/3.3_1/include/nest/connector_model_impl.h:271:45: note: in instantiation of member function 'nest::Connector<nest::neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml<nest::TargetIdentifierIndex>>::Connector' requested here
    thread_local_connectors[ syn_id ] = new Connector< ConnectionT >( syn_id );
                                            ^
/opt/homebrew/Cellar/nest/3.3_1/include/nest/connector_model_impl.h:252:3: note: in instantiation of member function 'nest::GenericConnectorModel<nest::neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml<nest::TargetIdentifierIndex>>::add_connection_' requested here
  add_connection_( src, tgt, thread_local_connectors, syn_id, connection, actual_receptor_type );
  ^
/opt/homebrew/Cellar/nest/3.3_1/include/nest/connector_model.h:183:3: note: in instantiation of member function 'nest::GenericConnectorModel<nest::neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml<nest::TargetIdentifierIndex>>::add_connection' requested here
  GenericConnectorModel( const std::string name,
  ^
/opt/homebrew/Cellar/nest/3.3_1/include/nest/model_manager_impl.h:74:14: note: in instantiation of member function 'nest::GenericConnectorModel<nest::neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml<nest::TargetIdentifierIndex>>::GenericConnectorModel' requested here
    cf = new GenericConnectorModel< ConnectionT< TargetIdentifierIndex > >( name + "_hpc",
             ^
/opt/homebrew/Cellar/nest/3.3_1/include/nest/nest_impl.h:35:26: note: in instantiation of function template specialization 'nest::ModelManager::register_connection_model<nest::neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml>' requested here
  kernel().model_manager.register_connection_model< ConnectorModelT >( name, flags );
                         ^
/Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/nestml_ff3d16d131484a588d128b3206348245_module.cpp:113:9: note: in instantiation of function template specialization 'nest::register_connection_model<nest::neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml>' requested here
  nest::register_connection_model< nest::neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml >( "neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml" );
        ^
In file included from /Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/nestml_ff3d16d131484a588d128b3206348245_module.cpp:52:
/Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml.h:525:7: warning: expression result unused [-Wunused-value]
      dynamic_cast<msnff3d16d131484a588d128b3206348245_nestml__with_neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml&>(t);
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/homebrew/Cellar/nest/3.3_1/include/nest/connector_model_impl.h:276:14: note: in instantiation of member function 'nest::neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml<nest::TargetIdentifierIndex>::check_connection' requested here
  connection.check_connection( src, tgt, receptor_type, get_common_properties() );
             ^
/opt/homebrew/Cellar/nest/3.3_1/include/nest/connector_model_impl.h:252:3: note: in instantiation of member function 'nest::GenericConnectorModel<nest::neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml<nest::TargetIdentifierIndex>>::add_connection_' requested here
  add_connection_( src, tgt, thread_local_connectors, syn_id, connection, actual_receptor_type );
  ^
/opt/homebrew/Cellar/nest/3.3_1/include/nest/connector_model.h:183:3: note: in instantiation of member function 'nest::GenericConnectorModel<nest::neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml<nest::TargetIdentifierIndex>>::add_connection' requested here
  GenericConnectorModel( const std::string name,
  ^
/opt/homebrew/Cellar/nest/3.3_1/include/nest/model_manager_impl.h:74:14: note: in instantiation of member function 'nest::GenericConnectorModel<nest::neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml<nest::TargetIdentifierIndex>>::GenericConnectorModel' requested here
    cf = new GenericConnectorModel< ConnectionT< TargetIdentifierIndex > >( name + "_hpc",
             ^
/opt/homebrew/Cellar/nest/3.3_1/include/nest/nest_impl.h:35:26: note: in instantiation of function template specialization 'nest::ModelManager::register_connection_model<nest::neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml>' requested here
  kernel().model_manager.register_connection_model< ConnectorModelT >( name, flags );
                         ^
/Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/nestml_ff3d16d131484a588d128b3206348245_module.cpp:113:9: note: in instantiation of function template specialization 'nest::register_connection_model<nest::neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml>' requested here
  nest::register_connection_model< nest::neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml >( "neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml__with_msnff3d16d131484a588d128b3206348245_nestml" );
        ^
15 warnings generated.
[ 50%] Building CXX object CMakeFiles/nestml_ff3d16d131484a588d128b3206348245_module_module.dir/msnff3d16d131484a588d128b3206348245_nestml.o
In file included from /Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/msnff3d16d131484a588d128b3206348245_nestml.cpp:43:
/Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/msnff3d16d131484a588d128b3206348245_nestml.h:372:17: warning: 'msnff3d16d131484a588d128b3206348245_nestml::get_C_m' hides overloaded virtual function [-Woverloaded-virtual]
  inline double get_C_m() const
                ^
/opt/homebrew/Cellar/nest/3.3_1/include/nest/node.h:689:18: note: hidden overloaded virtual function 'nest::Node::get_C_m' declared here: different number of parameters (1 vs 0)
  virtual double get_C_m( int comp );
                 ^
/Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/msnff3d16d131484a588d128b3206348245_nestml.cpp:109:16: warning: unused variable '__resolution' [-Wunused-variable]
  const double __resolution = nest::Time::get_resolution().get_ms();  // do not remove, this is necessary for the resolution() function
               ^
/Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/msnff3d16d131484a588d128b3206348245_nestml.cpp:363:16: warning: unused variable '__resolution' [-Wunused-variable]
  const double __resolution = nest::Time::get_resolution().get_ms();  // do not remove, this is necessary for the resolution() function
               ^
3 warnings generated.
[ 75%] Building CXX object CMakeFiles/nestml_ff3d16d131484a588d128b3206348245_module_module.dir/msnff3d16d131484a588d128b3206348245_nestml__with_neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml.o
In file included from /Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/msnff3d16d131484a588d128b3206348245_nestml__with_neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml.cpp:43:
/Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/msnff3d16d131484a588d128b3206348245_nestml__with_neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml.h:425:17: warning: 'msnff3d16d131484a588d128b3206348245_nestml__with_neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml::get_C_m' hides overloaded virtual function [-Woverloaded-virtual]
  inline double get_C_m() const
                ^
/opt/homebrew/Cellar/nest/3.3_1/include/nest/node.h:689:18: note: hidden overloaded virtual function 'nest::Node::get_C_m' declared here: different number of parameters (1 vs 0)
  virtual double get_C_m( int comp );
                 ^
In file included from /Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/msnff3d16d131484a588d128b3206348245_nestml__with_neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml.cpp:43:
/Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/msnff3d16d131484a588d128b3206348245_nestml__with_neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml.h:234:8: warning: 'register_stdp_connection' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
  void register_stdp_connection( double t_first_read, double delay );
       ^
/opt/homebrew/Cellar/nest/3.3_1/include/nest/node.h:457:16: note: overridden virtual function is here
  virtual void register_stdp_connection( double, double );
               ^
/Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/msnff3d16d131484a588d128b3206348245_nestml__with_neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml.cpp:110:16: warning: unused variable '__resolution' [-Wunused-variable]
  const double __resolution = nest::Time::get_resolution().get_ms();  // do not remove, this is necessary for the resolution() function
               ^
/Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/msnff3d16d131484a588d128b3206348245_nestml__with_neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml.cpp:389:16: warning: unused variable '__resolution' [-Wunused-variable]
  const double __resolution = nest::Time::get_resolution().get_ms();  // do not remove, this is necessary for the resolution() function
               ^
/Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target/msnff3d16d131484a588d128b3206348245_nestml__with_neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml.cpp:651:84: error: expression is not assignable
        S_.post_tr__for_neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml += 1.0;
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
4 warnings and 1 error generated.
make[2]: *** [CMakeFiles/nestml_ff3d16d131484a588d128b3206348245_module_module.dir/msnff3d16d131484a588d128b3206348245_nestml__with_neuromodulated_stdpff3d16d131484a588d128b3206348245_nestml.o] Error 1
make[1]: *** [CMakeFiles/nestml_ff3d16d131484a588d128b3206348245_module_module.dir/all] Error 2
make: *** [all] Error 2

CalledProcessError                        Traceback (most recent call last)
File ~/Library/Python/3.10/lib/python/site-packages/NESTML-5.1.0.post0.dev0-py3.10.egg/pynestml/codegeneration/nest_builder.py:152, in NESTBuilder.build(self)
    151 try:
--> 152     subprocess.check_call(make_all_cmd, stderr=subprocess.STDOUT, shell=shell,
    153                           cwd=str(os.path.join(target_path)))
    154 except subprocess.CalledProcessError as e:

File /opt/homebrew/Cellar/python@3.10/3.10.2/Frameworks/Python.framework/Versions/3.10/lib/python3.10/subprocess.py:369, in check_call(*popenargs, **kwargs)
    368         cmd = popenargs[0]
--> 369     raise CalledProcessError(retcode, cmd)
    370 return 0

CalledProcessError: Command '['make', 'all']' returned non-zero exit status 2.

During handling of the above exception, another exception occurred:

GeneratedCodeBuildException               Traceback (most recent call last)
/Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/01 - General behaviour.ipynb Cell 5 in <cell line: 3>()
      1 # generate and build code
      2 module_name, neuron_model_name, synapse_model_name = \
----> 3     generate_code_for("nest_module/msn.nestml",
      4                       "nest_module/stdp.nestml",
      5                       post_ports=["post_spikes"],
      6                       mod_ports=["mod_spikes"])
...
--> 155     raise GeneratedCodeBuildException('Error occurred during \'make all\'! More detailed error messages can be found in stdout.')
    157 # finally execute make install
    158 try:

GeneratedCodeBuildException: Error occurred during 'make all'! More detailed error messages can be found in stdout.

@pnbabu
Copy link
Contributor

pnbabu commented Nov 16, 2022

@ewa8 thanks for the logs. Could you also share the generated C++ files (.h and .cpp) from NESTML present in the path /Users/ewarusiecka/Documents/University/DTU/Special_course/MSN/target?

@ewa8
Copy link
Author

ewa8 commented Nov 16, 2022

Archive.zip
Hi @pnbabu, here are the generated files

@pnbabu
Copy link
Contributor

pnbabu commented Feb 6, 2023

@ewa8 apologies for the delayed response. Could you let us know how you installed NEST? We observe some extra optimization flags in the cmake logs and would like to understand where it's coming from.

NEST compiler flags  :  -O2 -std=c++11 -Wall -Xclang -fopenmp  -O3 -DNDEBUG

@clinssen
Copy link
Contributor

clinssen commented Feb 8, 2023

Also from my side sorry for the delay! After merging #861, the models you provided compile OK for me (although I did not do any behavioural testing). Could I ask you to check again with the latest NESTML master version? Thanks!

@clinssen
Copy link
Contributor

Closing due to inactivity, please re-open if this has not been resolved yet!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants