Hi Markus,

 

(1). That is great news, I can keep using Nest via bmtk and PyCall in Julia, until there is an obvious cpp API to access from Julia.

 

Julia supports system calls, so I could, if I wanted, call the SLI with different arguments while I am waiting for a cpp interface.

 

(2) Our lab is interested in running the whole Allen V1 model on a novel neuromorphic hardware, we are interested in the influence of scale and the causes of unrealistic firing.

 

I found these relevant BMTK models:

 

https://github.com/AllenInstitute/bmtk/blob/develop/examples/point_450glifs/build_network.py

https://github.com/AllenInstitute/bmtk/blob/develop/examples/point_450cells/build_network.py

 

I am so far abale to run them.

 

Russell.

 

From: Markus Diesmann <diesmann@fz-juelich.de>
Sent: Saturday, 28 January 2023 9:09 PM
To: users@nest-simulator.org
Subject: [NEST Users] Re: [External] Re: UPDATE Need help Compiling NEST to use inside Julia

 

Hi Robert,

thanks for your interesting and important questions:

(1)
> ... I had unreasonably assumed that an indipendent cpp version of nest must have existed before the Python interface. Perhaps the Python and Cpp parts of Nest have always been codependant and tightHly coupled...

This is not the case. So far the coupling between Python and NEST is the build-in SLI interpreter.
Historically, the NEST code has seen several programmatic or graphical interfaces passing away.
Therefore, having an autonomous NEST code is and always was an important design goal.
A pure C++ API is in preparation.

(2)

Scaling down network models is not only a practical question but also has severe theoretical
limitations and consequences. See
https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1004490
for the background.
This is why it is so important to have the capability to validate results by full scale
simulations.


Regards,
Markus




>
> I also thought after posting this email, that the Nest kernel (rather than the SLI) could be the type of cpp object that I am trying to expose to a putative Julia interface. I can put my build scripts on GitHub at some point, in case others that feel similirarily motived to work with Julia over Python don't have to start from scratch every time.
>
> My rational for pursuing Julia over Python, is it, that Julia has a sparse compressed matrix format, which helps you visualize very big connection matrices. Ascii art connection matrix plots render to the terminal in milliseconds, and its useful for debugging my work. Rebuilding ablating and downscaling the Allen V1 model looks and feels like a big data problem, and plotting simulation outputs is also a big data problem. Python may no longer be the best tool for doing this job (HDF5 reads, data frame slicing/wrangling and plotting might all be faster and more more friendly in Julia) and that I might make my life easier by tackling these issues now.
>
> Thanks again,
>
> ________________________________________
> From: Robin Gilbert De Schepper [robingilbert.deschepper@unipv.it]
> Sent: 27 January 2023 21:21
> To: NEST User Mailing List
> Subject: [External] [NEST Users] Re: UPDATE Need help Compiling NEST to use inside Julia
>
> In our last community hackathon SLI was marked for removal, and this exact use case was discussed: What API can NEST provide on the CPP level so that we're no longer coupled to any external interpreter, and bindings to any language, even use as a standalone CPP library may become possible. Unless others correct me, this might not yet be possible because such an API has not yet been defined.
>
> On Fri, 27 Jan 2023 at 06:34, Russell Jarvis <R.Jarvis@westernsydney.edu.au<mailto:R.Jarvis@westernsydney.edu.au>> wrote:
> I tried using a more modern version of gcc ie gcc==10.2.0.
>
> I also removed the flag Dwith-ltdl=ON
>
> Now
> sandbox:${WORKSPACE}/srcdir/nest-simulator-3.3 # cmake -DCMAKE_INSTALL_PREFIX=$prefix -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TARGET_TOOLCHAIN} -DCMAKE_BUILD_TYPE=Release -Dwith-python=OFF -Dwith-warning=ON
>
> sandbox:${WORKSPACE}/srcdir/nest-simulator-3.3 # make
>
> `make install`
>
> I hit build at 100%,I see messages like:
> -- Installing: /workspace/destdir/share/nest/testsuite/regressiontests/issue-1100.sli
>
> Because the build now works, it is appropriate to use my build script and move on to the next phase of the Julia BinaryBuilder wizard, however, the Julia complains that there is no obvious binary artifacts made by nest build, I conducted above, however I think I can optionally give the Julia BinaryBuilder the path of a binary artifact.
>
> Now I am wondering if I am opting out of the Python interface to Nest, is it theoretically possible that I could treat the SLI as the target binary artifiact? If so if I were to write Julia wrappers for the SLI does anyone have any anticipate any road blocks with this?
>
> sandbox:${WORKSPACE}/srcdir/nest-simulator/sli # ./sli
>
> -- S L I --
> Copyright (C) 2004 The NEST Initiative
>
> Version: HEAD@b5f337d08
> Built: Jan 1 1970 00:00:00
>
> 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<https://www.nest-simulator.org>
>
> Type 'help' to get more information.
> Type 'quit' or press CTRL-D to quit.
>
> SLI ]
>
>
>
> I appreciate any help.
> Best Regards,
> Russell.
>
> ________________________________________
> From: Russell Jarvis [R.Jarvis@westernsydney.edu.au<mailto:R.Jarvis@westernsydney.edu.au>]
> Sent: 27 January 2023 15:51
> To: users@nest-simulator.org<mailto:users@nest-simulator.org>
> Subject: [External] [NEST Users] Need help Compiling NEST to use inside Julia
>
> Dear Nest mailing list. I am trying to compile NEST to use inside Julia.
>
> Surprisingly or unsuprisingly Julia has great tools to support building external modules in cpp and c source code.
>
> I am using the tool BinaryBuilder.jl
>
> On a linux system with julia installed\, if I type:
>
> julia <ENTER>
>
> using Pkg
> Pkg.add("BinaryBuilder.jl")
> using BinaryBuilder
> BinaryBuilder.run_wizard()
>
> By following the wizard options, I can download the source code https://github.com/nest/nest-simulator.git<https://github.com/nest/nest-simulator.git><https://github.com/nest/nest-simulator.git<https://github.com/nest/nest-simulator.git>> and build the source tree in an alpine linux sand box.
>
> The building of the source tree in Alpine linux is related to how Julia does cross platform builds, an Alpine micro linux build is included with the Julia binary.
>
> From there I can optionally include the Binary file: Libtool_jll.jl
>
> Then the binary builder drops me into Alpine Linux environment, in order to test out (monkey patch a workable build script).
>
> When I navigate to:
> /workspace/srcdir/nest-simulator-3.3
>
> I can run:
> sandbox:${WORKSPACE}/srcdir/nest-simulator-3.3 # cmake -DCMAKE_INSTALL_PREFIX=$prefix -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TARGET_TOOLCHAIN} -DCMAKE_BUILD_TYPE=Release -Dwith-python=OFF -Dwith-warning=ON -Dwith-ltdl=ON
> and then run
>
> I get this output:
>
>
> Re-run cmake no build system arguments
> -- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
> -- Host triple: x86_64-pc-linux
> -- Target triple: x86_64-pc-linux
> -- Could NOT find Readline (missing: READLINE_LIBRARY NCURSES_LIBRARY READLINE_INCLUDE_DIR)
> -- Could NOT find GSL (missing: GSL_INCLUDE_DIR GSL_LIBRARY GSL_CBLAS_LIBRARY) (found version "")
> -- Check the abort exitcode.
> -- Check the abort exitcode.
> -- Check the segmentation fault exitcode.
> -- Check the segmentation fault exitcode.
> -- Check whether the compiler ignores cmath makros.
> -- Check whether the compiler ignores cmath makros. OFF
> -- Check whether the compiler does NOT include <*.h> headers ISO conformant.
> -- Check whether the compiler does NOT include <*.h> headers ISO conformant. OFF
> -- Check whether the compiler respects symbolic signal names in signal.h.
> -- Check whether the compiler respects symbolic signal names in signal.h. OFF
> -- Check static template member declaration.
> -- Check static template member declaration. OFF
> -- Check for STL vector capacity base unity.
> -- Check for STL vector capacity base unity. ON
> -- Check for STL vector capacity doubling strategy.
> -- Check for STL vector capacity doubling strategy. ON
> -- Check whether the compiler fails with ICE.
> -- Check whether the compiler fails with ICE. OFF
> -- Check if ::nan is available from cmath.
> -- Check if ::nan is available from cmath. ON
> -- Check if ::isnan is available from cmath.
> -- Check if ::isnan is available from cmath. ON
> -- Check if Random123 generators work.
> PLEASE_FILL_OUT-NOTFOUND
> -- Check if Random123 generators work. OFF
> -- NEST version: 3.3
>
> --------------------------------------------------------------------------------
> NEST Configuration Summary
> --------------------------------------------------------------------------------
>
> Build type : Release
> Target System : Linux
> Cross Compiling : TRUE
> C compiler : GNU 4.8.5 (/opt/bin/x86_64-linux-gnu-libgfortran3-cxx03/x86_64-linux-gnu-gcc)
> C compiler flags : -O2 -Wall -fopenmp -O3 -DNDEBUG
> C++ compiler : GNU 4.8.5 (/opt/bin/x86_64-linux-gnu-libgfortran3-cxx03/x86_64-linux-gnu-g++)
> C++ compiler flags : -O2 -std=c++11 -Wall -fopenmp -O3 -DNDEBUG
> Build dynamic : ON
>
> Built-in modules : models
> User modules : None
> Python bindings : No
> Use threading : Yes (OpenMP: -fopenmp)
> Use GSL : No
> Use Readline : No
> Use libltdl : Yes (LTDL 2.4.6)
> Includes : /opt/x86_64-linux-gnu/x86_64-linux-gnu/sys-root/usr/local/include
> Libraries : /opt/x86_64-linux-gnu/x86_64-linux-gnu/sys-root/usr/local/lib/libltdl.so
>
> Use doxygen : No
> Use MPI : No
> Detailed timers : No
>
> Use MUSIC : No
> Use libneurosim : No
> Use Boost : Yes (Boost 1.79.0)
> Includes : /workspace/destdir/include
> Libraries :
>
> Use SIONlib : No
>
> --------------------------------------------------------------------------------
>
> The NEST executable will be installed to:
> /workspace/destdir/bin/
>
> NEST dynamic libraries and user modules will be installed to:
> /workspace/destdir/lib/nest/
>
> Documentation and examples will be installed to:
> /workspace/destdir/share/doc/nest/
>
> To set necessary environment variables, add the following line
> to your ~/.bashrc :
> source /workspace/destdir/bin/nest_vars.sh
>
> --------------------------------------------------------------------------------
>
>
> ATTENTION!
> You are about to compile NEST without the GNU Scientific
> Library or your GSL is too old (before v1.11). This means
> that conductance-based neuron models and some random number
> generators will not be available.
>
> --------------------------------------------------------------------------------
>
> You can now build and install NEST with
> make
> make install
> make installcheck
>
> If you experience problems with the installation or the use of NEST,
> please see https://www.nest-simulator.org/frequently_asked_questions<https://www.nest-simulator.org/frequently_asked_questions><https://www.nest-simulator.org/frequently_asked_questions<https://www.nest-simulator.org/frequently_asked_questions>>
> or go to https://www.nest-simulator.org/community<https://www.nest-simulator.org/community><https://www.nest-simulator.org/community<https://www.nest-simulator.org/community>> to find out how to
> join the user mailing list.
>
> -- Configuring done
> -- Generating done
> -- Build files have been written to: /workspace/srcdir/nest-simulator-3.3
> sandbox:${WORKSPACE}/srcdir/nest-simulator-3.3 #
>
>
> sandbox:${WORKSPACE}/srcdir/nest-simulator-3.3/make:
>
> but when I try to run make I hit this error:
>
>
> [ 26%] Building CXX object nestkernel/CMakeFiles/nestkernel.dir/recording_backend_ascii.cpp.o
> cd /workspace/srcdir/nest-simulator-3.3/nestkernel && /opt/bin/x86_64-linux-gnu-libgfortran3-cxx03/x86_64-linux-gnu-g++ --sysroot=/opt/x86_64-linux-gnu/x86_64-linux-gnu/sys-root/ -Dnestkernel_EXPORTS -I/workspace/srcdir/nest-simulator-3.3/thirdparty -I/workspace/srcdir/nest-simulator-3.3/libnestutil -I/workspace/srcdir/nest-simulator-3.3/sli -I/workspace/srcdir/nest-simulator-3.3/nestkernel -I/workspace/srcdir/nest-simulator-3.3/nestkernel/spatial -O2 -std=c++11 -Wall -fopenmp -O3 -DNDEBUG -fPIC -fopenmp -MD -MT nestkernel/CMakeFiles/nestkernel.dir/recording_backend_ascii.cpp.o -MF CMakeFiles/nestkernel.dir/recording_backend_ascii.cpp.o.d -o CMakeFiles/nestkernel.dir/recording_backend_ascii.cpp.o -c /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.cpp
> In file included from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/bits/stl_algobase.h:64:0,
> from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/bits/char_traits.h:39,
> from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/ios:40,
> from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/istream:38,
> from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/sstream:38,
> from /workspace/srcdir/nest-simulator-3.3/thirdparty/compose.hpp:36,
> from /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.cpp:24:
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/bits/stl_pair.h: In instantiation of ‘constexpr std::pair<_T1, _T2>::pair(const _T1&, const _T2&) [with _T1 = long unsigned int; _T2 = nest::RecordingBackendASCII::DeviceData]’:
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/bits/stl_pair.h:281:72: required from ‘constexpr std::pair<typename std::__decay_and_strip<_Tp>::__type, typename std::__decay_and_strip<_T2>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const long unsigned int&; _T2 = nest::RecordingBackendASCII::DeviceData; typename std::__decay_and_strip<_T2>::__type = nest::RecordingBackendASCII::DeviceData; typename std::__decay_and_strip<_Tp>::__type = long unsigned int]’
> /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.cpp:69:108: required from here
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/bits/stl_pair.h:113:31: error: use of deleted function ‘nest::RecordingBackendASCII::DeviceData::DeviceData(const nest::RecordingBackendASCII::DeviceData&)’
> : first(__a), second(__b) { }
> ^
> In file included from /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.cpp:33:0:
> /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.h:195:10: note: ‘nest::RecordingBackendASCII::DeviceData::DeviceData(const nest::RecordingBackendASCII::DeviceData&)’ is implicitly deleted because the default definition would be ill-formed:
> struct DeviceData
> ^
> /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.h:195:10: error: use of deleted function ‘std::basic_ofstream<char>::basic_ofstream(const std::basic_ofstream<char>&)’
> In file included from /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_device.h:27:0,
> from /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.cpp:27:
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/fstream:599:11: note: ‘std::basic_ofstream<char>::basic_ofstream(const std::basic_ofstream<char>&)’ is implicitly deleted because the default definition would be ill-formed:
> class basic_ofstream : public basic_ostream<_CharT,_Traits>
> ^
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/fstream:599:11: error: use of deleted function ‘std::basic_ostream<char>::basic_ostream(const std::basic_ostream<char>&)’
> In file included from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/istream:39:0,
> from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/sstream:38,
> from /workspace/srcdir/nest-simulator-3.3/thirdparty/compose.hpp:36,
> from /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.cpp:24:
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/ostream:58:11: note: ‘std::basic_ostream<char>::basic_ostream(const std::basic_ostream<char>&)’ is implicitly deleted because the default definition would be ill-formed:
> class basic_ostream : virtual public basic_ios<_CharT, _Traits>
> ^
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/ostream:58:11: error: use of deleted function ‘std::basic_ios<char>::basic_ios(const std::basic_ios<char>&)’
> In file included from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/ios:44:0,
> from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/istream:38,
> from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/sstream:38,
> from /workspace/srcdir/nest-simulator-3.3/thirdparty/compose.hpp:36,
> from /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.cpp:24:
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/bits/basic_ios.h:66:11: note: ‘std::basic_ios<char>::basic_ios(const std::basic_ios<char>&)’ is implicitly deleted because the default definition would be ill-formed:
> class basic_ios : public ios_base
> ^
> In file included from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/ios:42:0,
> from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/istream:38,
> from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/sstream:38,
> from /workspace/srcdir/nest-simulator-3.3/thirdparty/compose.hpp:36,
> from /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.cpp:24:
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/bits/ios_base.h:786:5: error: ‘std::ios_base::ios_base(const std::ios_base&)’ is private
> ios_base(const ios_base&);
> ^
> In file included from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/ios:44:0,
> from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/istream:38,
> from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/sstream:38,
> from /workspace/srcdir/nest-simulator-3.3/thirdparty/compose.hpp:36,
> from /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.cpp:24:
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/bits/basic_ios.h:66:11: error: within this context
> class basic_ios : public ios_base
> ^
> In file included from /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_device.h:27:0,
> from /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.cpp:27:
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/fstream:599:11: error: use of deleted function ‘std::basic_ios<char>::basic_ios(const std::basic_ios<char>&)’
> class basic_ofstream : public basic_ostream<_CharT,_Traits>
> ^
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/fstream:599:11: error: use of deleted function ‘std::basic_filebuf<char>::basic_filebuf(const std::basic_filebuf<char>&)’
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/fstream:72:11: note: ‘std::basic_filebuf<char>::basic_filebuf(const std::basic_filebuf<char>&)’ is implicitly deleted because the default definition would be ill-formed:
> class basic_filebuf : public basic_streambuf<_CharT, _Traits>
> ^
> In file included from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/ios:43:0,
> from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/istream:38,
> from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/sstream:38,
> from /workspace/srcdir/nest-simulator-3.3/thirdparty/compose.hpp:36,
> from /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.cpp:24:
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/streambuf:802:7: error: ‘std::basic_streambuf<_CharT, _Traits>::basic_streambuf(const std::basic_streambuf<_CharT, _Traits>&) [with _CharT = char; _Traits = std::char_traits<char>]’ is private
> basic_streambuf(const basic_streambuf& __sb)
> ^
> In file included from /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_device.h:27:0,
> from /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.cpp:27:
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/fstream:72:11: error: within this context
> class basic_filebuf : public basic_streambuf<_CharT, _Traits>
> ^
> In file included from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/bits/stl_algobase.h:64:0,
> from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/bits/char_traits.h:39,
> from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/ios:40,
> from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/istream:38,
> from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/sstream:38,
> from /workspace/srcdir/nest-simulator-3.3/thirdparty/compose.hpp:36,
> from /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.cpp:24:
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/bits/stl_pair.h: In instantiation of ‘constexpr std::pair<typename std::__decay_and_strip<_Tp>::__type, typename std::__decay_and_strip<_T2>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = const long unsigned int&; _T2 = nest::RecordingBackendASCII::DeviceData; typename std::__decay_and_strip<_T2>::__type = nest::RecordingBackendASCII::DeviceData; typename std::__decay_and_strip<_Tp>::__type = long unsigned int]’:
> /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.cpp:69:108: required from here
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/bits/stl_pair.h:281:72: error: use of deleted function ‘constexpr std::pair<_T1, _T2>::pair(std::pair<_T1, _T2>&&) [with _T1 = long unsigned int; _T2 = nest::RecordingBackendASCII::DeviceData]’
> return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y));
> ^
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/bits/stl_pair.h:128:17: note: ‘constexpr std::pair<_T1, _T2>::pair(std::pair<_T1, _T2>&&) [with _T1 = long unsigned int; _T2 = nest::RecordingBackendASCII::DeviceData]’ is implicitly deleted because the default definition would be ill-formed:
> constexpr pair(pair&&) = default;
> ^
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/bits/stl_pair.h:128:17: error: use of deleted function ‘nest::RecordingBackendASCII::DeviceData::DeviceData(nest::RecordingBackendASCII::DeviceData&&)’
> In file included from /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.cpp:33:0:
> /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.h:195:10: note: ‘nest::RecordingBackendASCII::DeviceData::DeviceData(nest::RecordingBackendASCII::DeviceData&&)’ is implicitly deleted because the default definition would be ill-formed:
> struct DeviceData
> ^
> /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.h:195:10: error: use of deleted function ‘std::basic_ofstream<char>::basic_ofstream(const std::basic_ofstream<char>&)’
> /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.cpp: In member function ‘virtual void nest::RecordingBackendASCII::enroll(const nest::RecordingDevice&, const DictionaryDatum&)’:
> /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.cpp:69:110: error: no matching function for call to ‘std::map<long unsigned int, nest::RecordingBackendASCII::DeviceData>::insert(std::pair<long unsigned int, nest::RecordingBackendASCII::DeviceData>)’
> auto p = device_data_[ t ].insert( std::make_pair( node_id, DeviceData( modelname, vp_node_id_string ) ) );
> ^
> /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.cpp:69:110: note: candidates are:
> In file included from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/map:61:0,
> from /workspace/srcdir/nest-simulator-3.3/thirdparty/compose.hpp:39,
> from /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.cpp:24:
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/bits/stl_map.h:594:7: note: std::pair<typename std::_Rb_tree<_Key, std::pair<const _Key, _Tp>, std::_Select1st<std::pair<const _Key, _Tp> >, _Compare, typename _Alloc::rebind<std::pair<const _Key, _Tp> >::other>::iterator, bool> std::map<_Key, _Tp, _Compare, _Alloc>::insert(const value_type&) [with _Key = long unsigned int; _Tp = nest::RecordingBackendASCII::DeviceData; _Compare = std::less<long unsigned int>; _Alloc = std::allocator<std::pair<const long unsigned int, nest::RecordingBackendASCII::DeviceData> >; typename std::_Rb_tree<_Key, std::pair<const _Key, _Tp>, std::_Select1st<std::pair<const _Key, _Tp> >, _Compare, typename _Alloc::rebind<std::pair<const _Key, _Tp> >::other>::iterator = std::_Rb_tree_iterator<std::pair<const long unsigned int, nest::RecordingBackendASCII::DeviceData> >; std::map<_Key, _Tp, _Compare, _Alloc>::value_type = std::pair<const long unsigned int, nest::RecordingBackendASCII::DeviceData>]
> insert(const value_type& __x)
> ^
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/bits/stl_map.h:594:7: note: no known conversion for argument 1 from ‘std::pair<long unsigned int, nest::RecordingBackendASCII::DeviceData>’ to ‘const value_type& {aka const std::pair<const long unsigned int, nest::RecordingBackendASCII::DeviceData>&}’
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/bits/stl_map.h:602:9: note: template<class _Pair, class> std::pair<typename std::_Rb_tree<_Key, std::pair<const _Key, _Tp>, std::_Select1st<std::pair<const _Key, _Tp> >, _Compare, typename _Alloc::rebind<std::pair<const _Key, _Tp> >::other>::iterator, bool> std::map<_Key, _Tp, _Compare, _Alloc>::insert(_Pair&&) [with _Pair = _Pair; <template-parameter-2-2> = <template-parameter-1-2>; _Key = long unsigned int; _Tp = nest::RecordingBackendASCII::DeviceData; _Compare = std::less<long unsigned int>; _Alloc = std::allocator<std::pair<const long unsigned int, nest::RecordingBackendASCII::DeviceData> >]
> insert(_Pair&& __x)
> ^
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/bits/stl_map.h:602:9: note: template argument deduction/substitution failed:
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/bits/stl_map.h:598:32: error: no type named ‘type’ in ‘struct std::enable_if<false, void>’
> template<typename _Pair, typename = typename
> ^
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/bits/stl_map.h:615:7: note: void std::map<_Key, _Tp, _Compare, _Alloc>::insert(std::initializer_list<std::pair<const _Key, _Tp> >) [with _Key = long unsigned int; _Tp = nest::RecordingBackendASCII::DeviceData; _Compare = std::less<long unsigned int>; _Alloc = std::allocator<std::pair<const long unsigned int, nest::RecordingBackendASCII::DeviceData> >]
> insert(std::initializer_list<value_type> __list)
> ^
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/bits/stl_map.h:615:7: note: no known conversion for argument 1 from ‘std::pair<long unsigned int, nest::RecordingBackendASCII::DeviceData>’ to ‘std::initializer_list<std::pair<const long unsigned int, nest::RecordingBackendASCII::DeviceData> >’
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/bits/stl_map.h:644:7: note: std::map<_Key, _Tp, _Compare, _Alloc>::iterator std::map<_Key, _Tp, _Compare, _Alloc>::insert(std::map<_Key, _Tp, _Compare, _Alloc>::const_iterator, const value_type&) [with _Key = long unsigned int; _Tp = nest::RecordingBackendASCII::DeviceData; _Compare = std::less<long unsigned int>; _Alloc = std::allocator<std::pair<const long unsigned int, nest::RecordingBackendASCII::DeviceData> >; std::map<_Key, _Tp, _Compare, _Alloc>::iterator = std::_Rb_tree_iterator<std::pair<const long unsigned int, nest::RecordingBackendASCII::DeviceData> >; std::map<_Key, _Tp, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<const long unsigned int, nest::RecordingBackendASCII::DeviceData> >; std::map<_Key, _Tp, _Compare, _Alloc>::value_type = std::pair<const long unsigned int, nest::RecordingBackendASCII::DeviceData>]
> insert(const_iterator __position, const value_type& __x)
> ^
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/bits/stl_map.h:644:7: note: candidate expects 2 arguments, 1 provided
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/bits/stl_map.h:655:9: note: template<class _Pair, class> std::map<_Key, _Tp, _Compare, _Alloc>::iterator std::map<_Key, _Tp, _Compare, _Alloc>::insert(std::map<_Key, _Tp, _Compare, _Alloc>::const_iterator, _Pair&&) [with _Pair = _Pair; <template-parameter-2-2> = <template-parameter-1-2>; _Key = long unsigned int; _Tp = nest::RecordingBackendASCII::DeviceData; _Compare = std::less<long unsigned int>; _Alloc = std::allocator<std::pair<const long unsigned int, nest::RecordingBackendASCII::DeviceData> >]
> insert(const_iterator __position, _Pair&& __x)
> ^
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/bits/stl_map.h:655:9: note: template argument deduction/substitution failed:
> /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.cpp:69:110: note: cannot convert ‘std::make_pair(_T1&&, _T2&&) [with _T1 = const long unsigned int&; _T2 = nest::RecordingBackendASCII::DeviceData; typename std::__decay_and_strip<_T2>::__type = nest::RecordingBackendASCII::DeviceData; typename std::__decay_and_strip<_Tp>::__type = long unsigned int]((* & nest::RecordingBackendASCII::DeviceData(std::basic_string<char>((*(const std::basic_string<char>*)(& modelname))), std::basic_string<char>((*(const std::basic_string<char>*)(& vp_node_id_string))))))’ (type ‘std::pair<long unsigned int, nest::RecordingBackendASCII::DeviceData>’) to type ‘std::map<long unsigned int, nest::RecordingBackendASCII::DeviceData>::const_iterator {aka std::_Rb_tree_const_iterator<std::pair<const long unsigned int, nest::RecordingBackendASCII::DeviceData> >}’
> auto p = device_data_[ t ].insert( std::make_pair( node_id, DeviceData( modelname, vp_node_id_string ) ) );
> ^
> In file included from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/map:61:0,
> from /workspace/srcdir/nest-simulator-3.3/thirdparty/compose.hpp:39,
> from /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.cpp:24:
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/bits/stl_map.h:670:9: note: template<class _InputIterator> void std::map<_Key, _Tp, _Compare, _Alloc>::insert(_InputIterator, _InputIterator) [with _InputIterator = _InputIterator; _Key = long unsigned int; _Tp = nest::RecordingBackendASCII::DeviceData; _Compare = std::less<long unsigned int>; _Alloc = std::allocator<std::pair<const long unsigned int, nest::RecordingBackendASCII::DeviceData> >]
> insert(_InputIterator __first, _InputIterator __last)
> ^
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/bits/stl_map.h:670:9: note: template argument deduction/substitution failed:
> /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.cpp:69:110: note: candidate expects 2 arguments, 1 provided
> auto p = device_data_[ t ].insert( std::make_pair( node_id, DeviceData( modelname, vp_node_id_string ) ) );
> ^
> /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.cpp: In member function ‘void nest::RecordingBackendASCII::DeviceData::open_file()’:
> /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.cpp:266:9: error: use of deleted function ‘std::basic_ofstream<char>& std::basic_ofstream<char>::operator=(const std::basic_ofstream<char>&)’
> file_ = std::ofstream( filename.c_str() );
> ^
> In file included from /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_device.h:27:0,
> from /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.cpp:27:
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/fstream:599:11: note: ‘std::basic_ofstream<char>& std::basic_ofstream<char>::operator=(const std::basic_ofstream<char>&)’ is implicitly deleted because the default definition would be ill-formed:
> class basic_ofstream : public basic_ostream<_CharT,_Traits>
> ^
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/fstream:599:11: error: use of deleted function ‘std::basic_ostream<char>& std::basic_ostream<char>::operator=(const std::basic_ostream<char>&)’
> In file included from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/istream:39:0,
> from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/sstream:38,
> from /workspace/srcdir/nest-simulator-3.3/thirdparty/compose.hpp:36,
> from /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.cpp:24:
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/ostream:58:11: note: ‘std::basic_ostream<char>& std::basic_ostream<char>::operator=(const std::basic_ostream<char>&)’ is implicitly deleted because the default definition would be ill-formed:
> class basic_ostream : virtual public basic_ios<_CharT, _Traits>
> ^
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/ostream:58:11: error: use of deleted function ‘std::basic_ios<char>& std::basic_ios<char>::operator=(const std::basic_ios<char>&)’
> In file included from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/ios:44:0,
> from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/istream:38,
> from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/sstream:38,
> from /workspace/srcdir/nest-simulator-3.3/thirdparty/compose.hpp:36,
> from /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.cpp:24:
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/bits/basic_ios.h:66:11: note: ‘std::basic_ios<char>& std::basic_ios<char>::operator=(const std::basic_ios<char>&)’ is implicitly deleted because the default definition would be ill-formed:
> class basic_ios : public ios_base
> ^
> In file included from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/ios:42:0,
> from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/istream:38,
> from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/sstream:38,
> from /workspace/srcdir/nest-simulator-3.3/thirdparty/compose.hpp:36,
> from /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.cpp:24:
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/bits/ios_base.h:789:5: error: ‘std::ios_base& std::ios_base::operator=(const std::ios_base&)’ is private
> operator=(const ios_base&);
> ^
> In file included from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/ios:44:0,
> from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/istream:38,
> from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/sstream:38,
> from /workspace/srcdir/nest-simulator-3.3/thirdparty/compose.hpp:36,
> from /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.cpp:24:
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/bits/basic_ios.h:66:11: error: within this context
> class basic_ios : public ios_base
> ^
> In file included from /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_device.h:27:0,
> from /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.cpp:27:
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/fstream:599:11: error: use of deleted function ‘std::basic_filebuf<char>& std::basic_filebuf<char>::operator=(const std::basic_filebuf<char>&)’
> class basic_ofstream : public basic_ostream<_CharT,_Traits>
> ^
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/fstream:72:11: note: ‘std::basic_filebuf<char>& std::basic_filebuf<char>::operator=(const std::basic_filebuf<char>&)’ is implicitly deleted because the default definition would be ill-formed:
> class basic_filebuf : public basic_streambuf<_CharT, _Traits>
> ^
> In file included from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/ios:43:0,
> from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/istream:38,
> from /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/sstream:38,
> from /workspace/srcdir/nest-simulator-3.3/thirdparty/compose.hpp:36,
> from /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.cpp:24:
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/streambuf:810:7: error: ‘std::basic_streambuf<_CharT, _Traits>& std::basic_streambuf<_CharT, _Traits>::operator=(const std::basic_streambuf<_CharT, _Traits>&) [with _CharT = char; _Traits = std::char_traits<char>]’ is private
> operator=(const basic_streambuf&) { return *this; };
> ^
> In file included from /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_device.h:27:0,
> from /workspace/srcdir/nest-simulator-3.3/nestkernel/recording_backend_ascii.cpp:27:
> /opt/x86_64-linux-gnu/x86_64-linux-gnu/include/c++/4.8.5/fstream:72:11: error: within this context
> class basic_filebuf : public basic_streambuf<_CharT, _Traits>
> ^
> make[2]: *** [nestkernel/CMakeFiles/nestkernel.dir/build.make:818: nestkernel/CMakeFiles/nestkernel.dir/recording_backend_ascii.cpp.o] Error 1
> make[2]: Leaving directory '/workspace/srcdir/nest-simulator-3.3'
> make[1]: *** [CMakeFiles/Makefile2:772: nestkernel/CMakeFiles/nestkernel.dir/all] Error 2
> make[1]: Leaving directory '/workspace/srcdir/nest-simulator-3.3'
> make: *** [Makefile:146: all] Error 2
>
>
>
> I wonder if the problem might be the GCC version?
> From this source it looks like 4.8.5 is the default GCC version
> https://github.com/JuliaPackaging/Yggdrasil/blob/master/RootFS.md#compiler-shards<https://github.com/JuliaPackaging/Yggdrasil/blob/master/RootFS.md#compiler-shards><https://github.com/JuliaPackaging/Yggdrasil/blob/master/RootFS.md#compiler-shards<https://github.com/JuliaPackaging/Yggdrasil/blob/master/RootFS.md#compiler-shards>>
>
>
> GCC Binutils libgfortran SONAME libstdc++ SONAME string ABI
> 4.8.5 2.24 libgfortran.so.3 libstdc++.so.6.0.19 cxx03
> 5.2.0 2.25.1 libgfortran.so.3 libstdc++.so.6.0.21 cxx11
> 6.1.0* 2.26 libgfortran.so.3 libstdc++.so.6.0.22 cxx11
> 7.1.0 2.27 libgfortran.so.4 libstdc++.so.6.0.23 cxx11
> 8.1.0 2.31 libgfortran.so.5 libstdc++.so.6.0.25 cxx11
> 9.1.0 2.33.1 libgfortran.so.5 libstdc++.so.6.0.26 cxx11
> 10.2.0 2.34 libgfortran.so.5 libstdc++.so.6.0.28 cxx11
> 11.1.0 2.36 libgfortran.so.5 libstdc++.so.6.0.29 cxx11
>
>
> Also I wonder if any one has any hints about what to try?
>
> I have noticed the Ubuntu Nest dependencies in the Dockerfile here:
>
> https://github.com/nest/nest-docker/blob/master/src/base/Dockerfile-build-base<https://github.com/nest/nest-docker/blob/master/src/base/Dockerfile-build-base><https://github.com/nest/nest-docker/blob/master/src/base/Dockerfile-build-base<https://github.com/nest/nest-docker/blob/master/src/base/Dockerfile-build-base>>
>
> Many of those dependencies have Alpine counter parts, but I'd rather not try to randomly install them.
>
> Russell.
>
> _______________________________________________
> NEST Users mailing list -- users@nest-simulator.org<mailto:users@nest-simulator.org>
> To unsubscribe send an email to users-leave@nest-simulator.org<mailto:users-leave@nest-simulator.org>
>
> _______________________________________________
> NEST Users mailing list -- users@nest-simulator.org<mailto:users@nest-simulator.org>
> To unsubscribe send an email to users-leave@nest-simulator.org<mailto:users-leave@nest-simulator.org>
>
>
> --
> Robin De Schepper, MSc (they/them)
> Department of Brain and Behavioral Sciences
> Unit of Neurophysiology
> University of Pavia, Italy
> Via Forlanini 6, 27100 Pavia - Italy
> Tel: (+39) 038298-7607
> http://www-5.unipv.it/dangelo/<http://www-5.unipv.it/dangelo/>
>
> _______________________________________________
> NEST Users mailing list -- users@nest-simulator.org
> To unsubscribe send an email to users-leave@nest-simulator.org

--

Prof. Dr. Markus Diesmann, Director
Inst of Neuroscience and Medicine (INM-6) Tel +49-2461-61-4748 (secr)
Computational and Systems Neuroscience & +49-2461-61-9301 (lab)
Institute for Advanced Simulation (IAS-6) Fax +49-2461-61-9460
Theoretical Neuroscience Mob +49-175-290-1943
Jülich Research Centre and JARA Institute I
Jülich, Germany

Department of Psychiatry, Psychotherapy and Psychosomatics
School of Medicine, RWTH Aachen University
Aachen, Germany

www.nest-initiative.org www.csn.fz-juelich.de