nestml icon indicating copy to clipboard operation
nestml copied to clipboard

make fails for Izhikevich tutorial

Open ErbB4 opened this issue 3 years ago • 12 comments

Hi there,

I am trying to install NESTML to implement my own model. I managed to install it but had difficulty running your tutorial code. In detail, I am testing using the tutorials and ran into some bugs when the code was trying to make the c++ code.

Bug

Following the instructions in the documentation, the Izhikevich tutorial produces errors when make.

A few things:

  • echo $LD_LIBRARY_PATH: /tmp/nestml-component
  • compiler setting in nest-config: check if the compiler is correct: it exists and is -> x86_64-conda-linux-gnu-c++
Error logs
[ 16%] Building CXX object CMakeFiles/nestmlmodule_lib.dir/nestmlmodule.cpp.o
In file included from /tmp/nestml-component/nestmlmodule.cpp:47:
/tmp/nestml-component/izhikevich_tutorial.h:87:1: error: expected class-name before '{' token
   87 | {
      | ^
/tmp/nestml-component/izhikevich_tutorial.h:113:21: error: type 'nest::Node' is not a base type for type 'izhikevich_tutorial'
  113 |   using nest::Node::handles_test_event;
      |                     ^~~~~~~~~~~~~~~~~~
/tmp/nestml-component/izhikevich_tutorial.h:114:21: error: type 'nest::Node' is not a base type for type 'izhikevich_tutorial'
  114 |   using nest::Node::handle;
      |                     ^~~~~~
/tmp/nestml-component/izhikevich_tutorial.h: In member function 'nest::port izhikevich_tutorial::send_test_event(nest::Node&, nest::rport, nest::synindex, bool)':
/tmp/nestml-component/izhikevich_tutorial.h:424:16: error: cannot convert 'izhikevich_tutorial' to 'nest::Node&'
  424 |   e.set_sender(*this);
      |                ^~~~~
      |                |
      |                izhikevich_tutorial
In file included from /home/hanlu/anaconda3/envs/wnestml/include/nest/connector_model.h:34,
                 from /home/hanlu/anaconda3/envs/wnestml/include/nest/common_synapse_properties.h:27,
                 from /home/hanlu/anaconda3/envs/wnestml/include/nest/connector_base.h:39,
                 from /home/hanlu/anaconda3/envs/wnestml/include/nest/connection_manager.h:37,
                 from /home/hanlu/anaconda3/envs/wnestml/include/nest/connection_manager_impl.h:26,
                 from /tmp/nestml-component/nestmlmodule.cpp:26:
/home/hanlu/anaconda3/envs/wnestml/include/nest/event.h:1291:26: note:   initializing argument 1 of 'void nest::Event::set_sender(nest::Node&)'
 1291 | Event::set_sender( Node& s )
      |                    ~~~~~~^
In file included from /tmp/nestml-component/nestmlmodule.cpp:47:
/tmp/nestml-component/izhikevich_tutorial.h: In member function 'nest::port izhikevich_tutorial::handles_test_event(nest::SpikeEvent&, nest::port)':
/tmp/nestml-component/izhikevich_tutorial.h:436:54: error: 'get_name' was not declared in this scope; did you mean 'get_a'?
  436 |       throw nest::UnknownReceptorType(receptor_type, get_name());
      |                                                      ^~~~~~~~
      |                                                      get_a
/tmp/nestml-component/izhikevich_tutorial.h: In member function 'nest::port izhikevich_tutorial::handles_test_event(nest::CurrentEvent&, nest::port)':
/tmp/nestml-component/izhikevich_tutorial.h:449:52: error: 'get_name' was not declared in this scope; did you mean 'get_a'?
  449 |     throw nest::UnknownReceptorType(receptor_type, get_name());
      |                                                    ^~~~~~~~
      |                                                    get_a
/tmp/nestml-component/izhikevich_tutorial.h: In member function 'nest::port izhikevich_tutorial::handles_test_event(nest::DataLoggingRequest&, nest::port)':
/tmp/nestml-component/izhikevich_tutorial.h:463:52: error: 'get_name' was not declared in this scope; did you mean 'get_a'?
  463 |     throw nest::UnknownReceptorType(receptor_type, get_name());
      |                                                    ^~~~~~~~
      |                                                    get_a
/tmp/nestml-component/izhikevich_tutorial.h: In member function 'void izhikevich_tutorial::get_status(DictionaryDatum&) const':
/tmp/nestml-component/izhikevich_tutorial.h:481:3: error: 'ArchivingNode' has not been declared
  481 |   ArchivingNode::get_status( __d );
      |   ^~~~~~~~~~~~~
/tmp/nestml-component/izhikevich_tutorial.h: In member function 'void izhikevich_tutorial::set_status(const DictionaryDatum&)':
/tmp/nestml-component/izhikevich_tutorial.h:512:3: error: 'ArchivingNode' has not been declared
  512 |   ArchivingNode::set_status(__d);
      |   ^~~~~~~~~~~~~
In file included from /home/hanlu/anaconda3/envs/wnestml/include/nest/model_manager.h:31,
                 from /home/hanlu/anaconda3/envs/wnestml/include/nest/kernel_manager.h:31,
                 from /home/hanlu/anaconda3/envs/wnestml/include/nest/connection_manager_impl.h:35,
                 from /tmp/nestml-component/nestmlmodule.cpp:26:
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h: In instantiation of 'bool nest::GenericModel<ElementT>::has_proxies() [with ElementT = izhikevich_tutorial]':
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h:171:1:   required from here
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h:173:17: error: 'class izhikevich_tutorial' has no member named 'has_proxies'
  173 |   return proto_.has_proxies();
      |          ~~~~~~~^~~~~~~~~~~
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h: In instantiation of 'bool nest::GenericModel<ElementT>::one_node_per_process() [with ElementT = izhikevich_tutorial]':
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h:178:1:   required from here
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h:180:17: error: 'class izhikevich_tutorial' has no member named 'one_node_per_process'
  180 |   return proto_.one_node_per_process();
      |          ~~~~~~~^~~~~~~~~~~~~~~~~~~~
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h: In instantiation of 'bool nest::GenericModel<ElementT>::is_off_grid() [with ElementT = izhikevich_tutorial]':
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h:185:1:   required from here
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h:187:17: error: 'class izhikevich_tutorial' has no member named 'is_off_grid'
  187 |   return proto_.is_off_grid();
      |          ~~~~~~~^~~~~~~~~~~
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h: In instantiation of 'void nest::GenericModel<ElementT>::sends_secondary_event(nest::GapJunctionEvent&) [with ElementT = izhikevich_tutorial]':
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h:199:1:   required from here
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h:201:17: error: 'class izhikevich_tutorial' has no member named 'sends_secondary_event'
  201 |   return proto_.sends_secondary_event( ge );
      |          ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h:201:43: error: return-statement with a value, in function returning 'void' [-fpermissive]
  201 |   return proto_.sends_secondary_event( ge );
      |                                           ^
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h: In instantiation of 'void nest::GenericModel<ElementT>::sends_secondary_event(nest::InstantaneousRateConnectionEvent&) [with ElementT = izhikevich_tutorial]':
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h:206:1:   required from here
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h:208:17: error: 'class izhikevich_tutorial' has no member named 'sends_secondary_event'
  208 |   return proto_.sends_secondary_event( re );
      |          ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h:208:43: error: return-statement with a value, in function returning 'void' [-fpermissive]
  208 |   return proto_.sends_secondary_event( re );
      |                                           ^
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h: In instantiation of 'void nest::GenericModel<ElementT>::sends_secondary_event(nest::DiffusionConnectionEvent&) [with ElementT = izhikevich_tutorial]':
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h:213:1:   required from here
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h:215:17: error: 'class izhikevich_tutorial' has no member named 'sends_secondary_event'
  215 |   return proto_.sends_secondary_event( de );
      |          ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h:215:43: error: return-statement with a value, in function returning 'void' [-fpermissive]
  215 |   return proto_.sends_secondary_event( de );
      |                                           ^
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h: In instantiation of 'void nest::GenericModel<ElementT>::sends_secondary_event(nest::DelayedRateConnectionEvent&) [with ElementT = izhikevich_tutorial]':
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h:220:1:   required from here
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h:222:17: error: 'class izhikevich_tutorial' has no member named 'sends_secondary_event'
  222 |   return proto_.sends_secondary_event( re );
      |          ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h:222:43: error: return-statement with a value, in function returning 'void' [-fpermissive]
  222 |   return proto_.sends_secondary_event( re );
      |                                           ^
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h: In instantiation of 'nest::SignalType nest::GenericModel<ElementT>::sends_signal() const [with ElementT = izhikevich_tutorial]':
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h:227:1:   required from here
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h:229:17: error: 'const class izhikevich_tutorial' has no member named 'sends_signal'
  229 |   return proto_.sends_signal();
      |          ~~~~~~~^~~~~~~~~~~~
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h: In instantiation of 'const nest::Node& nest::GenericModel<ElementT>::get_prototype() const [with ElementT = izhikevich_tutorial]':
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h:257:1:   required from here
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h:259:10: error: invalid initialization of reference of type 'const nest::Node&' from expression of type 'const izhikevich_tutorial'
  259 |   return proto_;
      |          ^~~~~~
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h: In instantiation of 'void nest::GenericModel<ElementT>::set_model_id(int) [with ElementT = izhikevich_tutorial]':
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h:264:1:   required from here
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h:266:10: error: 'class izhikevich_tutorial' has no member named 'set_model_id'
  266 |   proto_.set_model_id( i );
      |   ~~~~~~~^~~~~~~~~~~~
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h: In instantiation of 'DictionaryDatum nest::GenericModel<ElementT>::get_status_() [with ElementT = izhikevich_tutorial; DictionaryDatum = lockPTRDatum<Dictionary, (& SLIInterpreter::Dictionarytype)>]':
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h:241:1:   required from here
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h:243:30: error: 'class izhikevich_tutorial' has no member named 'get_status_base'; did you mean 'get_status'?
  243 |   DictionaryDatum d = proto_.get_status_base();
      |                       ~~~~~~~^~~~~~~~~~~~~~~
      |                       get_status
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h: In instantiation of 'nest::Node* nest::GenericModel<ElementT>::allocate_(void*) [with ElementT = izhikevich_tutorial]':
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h:156:1:   required from here
/home/hanlu/anaconda3/envs/wnestml/include/nest/genericmodel.h:158:9: error: cannot convert 'izhikevich_tutorial*' to 'nest::Node*' in initialization
  158 |   Node* n = new ( adr ) ElementT( proto_ );
      |         ^
make[2]: *** [CMakeFiles/nestmlmodule_lib.dir/build.make:63: CMakeFiles/nestmlmodule_lib.dir/nestmlmodule.cpp.o] Error 1
make[2]: Leaving directory '/tmp/nestml-component'
make[1]: *** [CMakeFiles/Makefile2:110: CMakeFiles/nestmlmodule_lib.dir/all] Error 2
make[1]: Leaving directory '/tmp/nestml-component'
make: *** [Makefile:152: all] Error 2
PyNestML: Something went wrong in 'make all', see error above!

To Reproduce

Steps to reproduce the behavior: Following everything in this tutorial: https://nestml.readthedocs.io/en/latest/tutorials/izhikevich/nestml_izhikevich_tutorial.html

Desktop/Environment (please complete the following information):

  • OS: Ubuntu 21.04
  • Shell: zsh
  • Python-Version: 3.9
  • NEST-Version: nest-2.20.2
  • Installation: conda packet, following everything here.

Look forward to the updates! Kind regards, Han

ErbB4 avatar Oct 28 '21 08:10 ErbB4

Hi @ErbB4. Thanks for reaching out to us. I believe you have installed NESTML through pip. If so, the version of NESTML installed (4.0) is not compatible with NEST 2.20.2. Is there a specific requirement for you to use this NEST version? If not, could I ask you to use the latest NEST version (3.1) and try to compile it again?

conda install -c conda-forge nest-simulator=3.1

If you do want to use NEST 2.20.2, we support that in NESTML now as mentioned here but unfortunately, it is not yet released as a pip package. For this to work, you would have to install NESTML from Github as mentioned here. Please feel free to reach out to us if you face any issues.

pnbabu avatar Oct 28 '21 13:10 pnbabu

Hi pnbabu,

I have the same problems of ErbB4. When I use the command "conda install -c conda-forge nest-simulator=3.1", I have:

"PackagesNotFoundError: The following packages are not available from current channels:

  • nest-simulator=3.1 "

This is due to the fact that the last version for Ubuntu is the 2.20.2 (I saw the version using "conda search -c conda-forge nest-simulator" -> https://nest-simulator.readthedocs.io/en/latest/installation/).

How can I solve the problem? How can follow the tutorial in "https://nestml.readthedocs.io/en/latest/installation.html" correctly?

Kind regards, Salvo

SalvoUnict avatar Nov 23 '21 16:11 SalvoUnict

Hi pnbabu, I have the same problems of Salvo,there is no nest-simulator=3.1 in -c conda-forge ,How can I solve the problem? Look forward to the updates! Kind regards Lst

steroal avatar Nov 29 '21 08:11 steroal

i see the information of https://anaconda.org/conda-forge/nest-simulator/files. there is v3.1 for macos and only 2.20 for linux. that's too regretful.

steroal avatar Nov 29 '21 09:11 steroal

Can anyone help us?

SalvoUnict avatar Nov 29 '21 10:11 SalvoUnict

@SalvoUnict @steroal thanks for reporting this. Unfortunately, there are some issues with the conda package for Linux for the latest NEST version. For now, could I ask you to proceed with the installation separately by downloading the latest NEST release from Github? You could download the tarball from here and then proceed with the installation as explained here. Once NEST is successfully installed, you could continue with the steps for NESTML as mentioned here.

Please feel free to reach out to us if you have any more questions or face any issues.

pnbabu avatar Nov 29 '21 11:11 pnbabu

@steffengraber: can you please fill us in on the status of the conda package for the latest NEST version? Thanks!

jougs avatar Nov 29 '21 14:11 jougs

The conda build system creates incorrect packages that cannot be executed. Also a longer debugging session with the NEST installation group did not lead to a satisfying result.

The error when executing the buggy package is always:

/sli/scanner.cc:581: bool Scanner::operator()(Token&): Assertion `in->good()' failed

master has also been affected by this problem so far. It is still unclear where the error is.

Locally, within your own conda installation, you can install NEST from sources without problems.

steffengraber avatar Nov 29 '21 15:11 steffengraber

Locally, within your own conda installation, you can install NEST from sources without problems.

i will have a try . Thank you for your very kind help

steroal avatar Nov 30 '21 02:11 steroal

Hi pnbabu,

I have the same problems of ErbB4. When I use the command "conda install -c conda-forge nest-simulator=3.1", I have:

"PackagesNotFoundError: The following packages are not available from current channels:

  • nest-simulator=3.1 "

This is due to the fact that the last version for Ubuntu is the 2.20.2 (I saw the version using "conda search -c conda-forge nest-simulator" -> https://nest-simulator.readthedocs.io/en/latest/installation/).

How can I solve the problem? How can follow the tutorial in "https://nestml.readthedocs.io/en/latest/installation.html" correctly?

Kind regards, Salvo

@SalvoUnict could i get your email? i think we can share our experience and learn together because we have the same subject。if you cause,send message to my email [email protected] i am a graduate in China。 have a good day, guys.

steroal avatar Nov 30 '21 02:11 steroal

I tried to install Nest 3.1 following your guide. As you can see below, the Nest 3.1 is installed.

(base) salvo@salvo-Aspire-GX-781:~/Scrivania$ nest

          -- N E S T --

Copyright (C) 2004 The NEST Initiative

Version: nest-3.1 Built: Nov 29 2021 22:56:33

This program is provided AS IS and comes with NO WARRANTY. See the file LICENSE for details.

Problems or suggestions? Visit https://www.nest-simulator.org

Type 'help' to get more information. Type 'quit' or press CTRL-D to quit.

SLI ]

When I try to install NESTML following the guide that you linked, I had the same problem.

In particular, beyond the problem reported above, when I use the command: python setup.py test

I have, as before:

> ERROR: test_docstring_failure (tests.docstring_comment_test.DocstringCommentTest)
>  ------------------------------------------------------------------------------------
> Ran 145 tests in 59.062s
> 
> FAILED (errors=1)
> Test failed: <unittest.runner.TextTestResult run=145 errors=1 failures=0>
> error: Test failed: <unittest.runner.TextTestResult run=145 errors=1 failures=0>
> 

Concluding, the original problem is still here, as you can see:

[  0%] Built target generate_help
Scanning dependencies of target nestmlmodule_lib
[ 16%] Building CXX object CMakeFiles/nestmlmodule_lib.dir/nestmlmodule.o
In file included from /tmp/nestml-component/nestmlmodule.cpp:47:
/tmp/nestml-component/izhikevich_tutorial.h:87:1: error: expected class-name before '{' token
   87 | {
      | ^
/tmp/nestml-component/izhikevich_tutorial.h:113:21: error: type 'nest::Node' is not a base type for type 'izhikevich_tutorial'
  113 |   using nest::Node::handles_test_event;
      |                     ^~~~~~~~~~~~~~~~~~
/tmp/nestml-component/izhikevich_tutorial.h:114:21: error: type 'nest::Node' is not a base type for type 'izhikevich_tutorial'
  114 |   using nest::Node::handle;
      |                     ^~~~~~
/tmp/nestml-component/izhikevich_tutorial.h: In member function 'nest::port izhikevich_tutorial::send_test_event(nest::Node&, nest::rport, nest::synindex, bool)':
/tmp/nestml-component/izhikevich_tutorial.h:430:16: error: cannot convert 'izhikevich_tutorial' to 'nest::Node&'
  430 |   e.set_sender(*this);
      |                ^~~~~
      |                |
      |                izhikevich_tutorial
In file included from /home/salvo/anaconda3/envs/wnestml/include/nest/connector_model.h:34,
                 from /home/salvo/anaconda3/envs/wnestml/include/nest/common_synapse_properties.h:27,
                 from /home/salvo/anaconda3/envs/wnestml/include/nest/connector_base.h:39,
                 from /home/salvo/anaconda3/envs/wnestml/include/nest/connection_manager.h:37,
                 from /home/salvo/anaconda3/envs/wnestml/include/nest/connection_manager_impl.h:26,
                 from /tmp/nestml-component/nestmlmodule.cpp:26:
/home/salvo/anaconda3/envs/wnestml/include/nest/event.h:1291:26: note:   initializing argument 1 of 'void nest::Event::set_sender(nest::Node&)'
 1291 | Event::set_sender( Node& s )
      |                    ~~~~~~^
In file included from /tmp/nestml-component/nestmlmodule.cpp:47:
/tmp/nestml-component/izhikevich_tutorial.h: In member function 'nest::port izhikevich_tutorial::handles_test_event(nest::SpikeEvent&, nest::port)':
/tmp/nestml-component/izhikevich_tutorial.h:442:54: error: 'get_name' was not declared in this scope; did you mean 'get_a'?
  442 |       throw nest::UnknownReceptorType(receptor_type, get_name());
      |                                                      ^~~~~~~~
      |                                                      get_a
/tmp/nestml-component/izhikevich_tutorial.h: In member function 'nest::port izhikevich_tutorial::handles_test_event(nest::CurrentEvent&, nest::port)':
/tmp/nestml-component/izhikevich_tutorial.h:455:52: error: 'get_name' was not declared in this scope; did you mean 'get_a'?
  455 |     throw nest::UnknownReceptorType(receptor_type, get_name());
      |                                                    ^~~~~~~~
      |                                                    get_a
/tmp/nestml-component/izhikevich_tutorial.h: In member function 'nest::port izhikevich_tutorial::handles_test_event(nest::DataLoggingRequest&, nest::port)':
/tmp/nestml-component/izhikevich_tutorial.h:469:52: error: 'get_name' was not declared in this scope; did you mean 'get_a'?
  469 |     throw nest::UnknownReceptorType(receptor_type, get_name());
      |                                                    ^~~~~~~~
      |                                                    get_a
/tmp/nestml-component/izhikevich_tutorial.h: In member function 'void izhikevich_tutorial::get_status(DictionaryDatum&) const':
/tmp/nestml-component/izhikevich_tutorial.h:487:3: error: 'ArchivingNode' has not been declared
  487 |   ArchivingNode::get_status( __d );
      |   ^~~~~~~~~~~~~
/tmp/nestml-component/izhikevich_tutorial.h: In member function 'void izhikevich_tutorial::set_status(const DictionaryDatum&)':
/tmp/nestml-component/izhikevich_tutorial.h:518:3: error: 'ArchivingNode' has not been declared
  518 |   ArchivingNode::set_status(__d);
      |   ^~~~~~~~~~~~~
In file included from /home/salvo/anaconda3/envs/wnestml/include/nest/model_manager.h:31,
                 from /home/salvo/anaconda3/envs/wnestml/include/nest/kernel_manager.h:31,
                 from /home/salvo/anaconda3/envs/wnestml/include/nest/connection_manager_impl.h:35,
                 from /tmp/nestml-component/nestmlmodule.cpp:26:
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h: In instantiation of 'bool nest::GenericModel<ElementT>::has_proxies() [with ElementT = izhikevich_tutorial]':
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h:171:1:   required from here
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h:173:17: error: 'class izhikevich_tutorial' has no member named 'has_proxies'
  173 |   return proto_.has_proxies();
      |          ~~~~~~~^~~~~~~~~~~
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h: In instantiation of 'bool nest::GenericModel<ElementT>::one_node_per_process() [with ElementT = izhikevich_tutorial]':
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h:178:1:   required from here
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h:180:17: error: 'class izhikevich_tutorial' has no member named 'one_node_per_process'
  180 |   return proto_.one_node_per_process();
      |          ~~~~~~~^~~~~~~~~~~~~~~~~~~~
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h: In instantiation of 'bool nest::GenericModel<ElementT>::is_off_grid() [with ElementT = izhikevich_tutorial]':
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h:185:1:   required from here
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h:187:17: error: 'class izhikevich_tutorial' has no member named 'is_off_grid'
  187 |   return proto_.is_off_grid();
      |          ~~~~~~~^~~~~~~~~~~
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h: In instantiation of 'void nest::GenericModel<ElementT>::sends_secondary_event(nest::GapJunctionEvent&) [with ElementT = izhikevich_tutorial]':
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h:199:1:   required from here
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h:201:17: error: 'class izhikevich_tutorial' has no member named 'sends_secondary_event'
  201 |   return proto_.sends_secondary_event( ge );
      |          ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h:201:43: error: return-statement with a value, in function returning 'void' [-fpermissive]
  201 |   return proto_.sends_secondary_event( ge );
      |                                           ^
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h: In instantiation of 'void nest::GenericModel<ElementT>::sends_secondary_event(nest::InstantaneousRateConnectionEvent&) [with ElementT = izhikevich_tutorial]':
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h:206:1:   required from here
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h:208:17: error: 'class izhikevich_tutorial' has no member named 'sends_secondary_event'
  208 |   return proto_.sends_secondary_event( re );
      |          ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h:208:43: error: return-statement with a value, in function returning 'void' [-fpermissive]
  208 |   return proto_.sends_secondary_event( re );
      |                                           ^
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h: In instantiation of 'void nest::GenericModel<ElementT>::sends_secondary_event(nest::DiffusionConnectionEvent&) [with ElementT = izhikevich_tutorial]':
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h:213:1:   required from here
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h:215:17: error: 'class izhikevich_tutorial' has no member named 'sends_secondary_event'
  215 |   return proto_.sends_secondary_event( de );
      |          ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h:215:43: error: return-statement with a value, in function returning 'void' [-fpermissive]
  215 |   return proto_.sends_secondary_event( de );
      |                                           ^
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h: In instantiation of 'void nest::GenericModel<ElementT>::sends_secondary_event(nest::DelayedRateConnectionEvent&) [with ElementT = izhikevich_tutorial]':
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h:220:1:   required from here
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h:222:17: error: 'class izhikevich_tutorial' has no member named 'sends_secondary_event'
  222 |   return proto_.sends_secondary_event( re );
      |          ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h:222:43: error: return-statement with a value, in function returning 'void' [-fpermissive]
  222 |   return proto_.sends_secondary_event( re );
      |                                           ^
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h: In instantiation of 'nest::SignalType nest::GenericModel<ElementT>::sends_signal() const [with ElementT = izhikevich_tutorial]':
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h:227:1:   required from here
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h:229:17: error: 'const class izhikevich_tutorial' has no member named 'sends_signal'
  229 |   return proto_.sends_signal();
      |          ~~~~~~~^~~~~~~~~~~~
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h: In instantiation of 'const nest::Node& nest::GenericModel<ElementT>::get_prototype() const [with ElementT = izhikevich_tutorial]':
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h:257:1:   required from here
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h:259:10: error: invalid initialization of reference of type 'const nest::Node&' from expression of type 'const izhikevich_tutorial'
  259 |   return proto_;
      |          ^~~~~~
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h: In instantiation of 'void nest::GenericModel<ElementT>::set_model_id(int) [with ElementT = izhikevich_tutorial]':
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h:264:1:   required from here
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h:266:10: error: 'class izhikevich_tutorial' has no member named 'set_model_id'
  266 |   proto_.set_model_id( i );
      |   ~~~~~~~^~~~~~~~~~~~
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h: In instantiation of 'DictionaryDatum nest::GenericModel<ElementT>::get_status_() [with ElementT = izhikevich_tutorial; DictionaryDatum = lockPTRDatum<Dictionary, (& SLIInterpreter::Dictionarytype)>]':
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h:241:1:   required from here
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h:243:30: error: 'class izhikevich_tutorial' has no member named 'get_status_base'; did you mean 'get_status'?
  243 |   DictionaryDatum d = proto_.get_status_base();
      |                       ~~~~~~~^~~~~~~~~~~~~~~
      |                       get_status
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h: In instantiation of 'nest::Node* nest::GenericModel<ElementT>::allocate_(void*) [with ElementT = izhikevich_tutorial]':
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h:156:1:   required from here
/home/salvo/anaconda3/envs/wnestml/include/nest/genericmodel.h:158:9: error: cannot convert 'izhikevich_tutorial*' to 'nest::Node*' in initialization
  158 |   Node* n = new ( adr ) ElementT( proto_ );
      |         ^
make[2]: *** [CMakeFiles/nestmlmodule_lib.dir/build.make:82: CMakeFiles/nestmlmodule_lib.dir/nestmlmodule.o] Errore 1
make[1]: *** [CMakeFiles/Makefile2:127: CMakeFiles/nestmlmodule_lib.dir/all] Errore 2
make: *** [Makefile:171: all] Errore 2
---------------------------------------------------------------------------
CalledProcessError                        Traceback (most recent call last)
~/nestml/pynestml/utils/model_installer.py in install_nest(target_path, nest_path)
     72     try:
---> 73         subprocess.check_call(make_all_cmd, stderr=subprocess.STDOUT, shell=shell,
     74                               cwd=str(os.path.join(target_path)))

~/anaconda3/envs/wnestml/lib/python3.9/subprocess.py in check_call(*popenargs, **kwargs)
    372             cmd = popenargs[0]
--> 373         raise CalledProcessError(retcode, cmd)
    374     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)
<ipython-input-1-d07e65574971> in <module>
      3         target_path="/tmp/nestml-component",
      4         logging_level="INFO")
----> 5 install_nest("/tmp/nestml-component", "/home/salvo/anaconda3/envs/wnestml/")

~/nestml/pynestml/frontend/pynestml_frontend.py in install_nest(target_path, nest_path)
    123         If any kind of failure occurs during cmake configuration, build, or install.
    124     '''
--> 125     nest_installer(target_path, nest_path)
    126 
    127 

~/nestml/pynestml/utils/model_installer.py in install_nest(target_path, nest_path)
     74                               cwd=str(os.path.join(target_path)))
     75     except subprocess.CalledProcessError as e:
---> 76         raise GeneratedCodeBuildException('Error occurred during \'make all\'! More detailed error messages can be found in stdout.')
     77 
     78     # finally execute make install

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

In [2]: 

SalvoUnict avatar Nov 30 '21 16:11 SalvoUnict

@SalvoUnict you can safely ignore the DocstringCommentTest failure as it is a negative test expected to fail with an exception.

Coming to the compilation error, it looks like CMake is still using NEST 2.20. Could you also share the log of your CMake configuration to check the NEST path being used? You can find this just before the compilation starts with the text Configuration Summary.

pnbabu avatar Dec 02 '21 14:12 pnbabu