[med-svn] [cnrun] 25/25: packaged 2.0.0, release in sight

andrei zavada hmmr-guest at moszumanska.debian.org
Thu Nov 6 22:08:32 UTC 2014


This is an automated email from the git hooks/post-receive script.

hmmr-guest pushed a commit to branch WIP
in repository cnrun.

commit aea30a79afbf343d0d79dfe9bcc5e43386a91d35
Author: Andrei Zavada <johnhommer at gmail.com>
Date:   Fri Nov 7 00:08:03 2014 +0200

    packaged 2.0.0, release in sight
---
 debian/.gitignore                                  |   1 +
 debian/README.Debian                               |   3 +
 debian/changelog                                   |   3 +-
 debian/control                                     |  33 +-
 debian/copyright                                   |   2 +-
 debian/libcnrun-lua.install                        |   2 -
 debian/libcnrun-lua.postinst                       |  21 -
 debian/libcnrun-lua.postrm                         |  17 -
 debian/libcnrun.install                            |   2 -
 debian/libcnrun2-dev.install                       |   4 +
 debian/libcnrun2.install                           |   2 +
 debian/libcnrun2.symbols                           | 492 +++++++++++++++++++
 debian/lua-cnrun.info                              |   1 +
 debian/lua-cnrun.install                           |   2 +
 debian/lua-cnrun.lintian-overrides                 |   3 +
 debian/rules                                       |  32 +-
 debian/unwanted-files                              |   8 +
 upstream/ChangeLog                                 |   4 +-
 upstream/INSTALL                                   |  10 +-
 upstream/Makefile.am                               |   7 +-
 upstream/configure.ac                              |   4 +-
 upstream/doc/Makefile.am                           |   9 +-
 upstream/doc/examples/example1.lua                 |  80 +++-
 upstream/doc/examples/{ratiocoding => }/m.nml      |   0
 upstream/doc/examples/ratiocoding/ORNa.in          | 112 -----
 upstream/doc/lua-api/.gitignore                    |   6 +
 upstream/doc/lua-api/Makefile.am                   |   4 +
 upstream/doc/lua-api/cnrun-lua-api.texi            | 533 +++++++++++++++++++++
 upstream/libcnrun.pc.in                            |  12 +
 upstream/src/Makefile.am                           |   2 +-
 upstream/src/libcnrun-lua/Makefile.am              |  15 -
 upstream/src/libcnrun/Makefile.am                  |  24 +-
 upstream/src/libcnrun/base-neuron.hh               |   3 +-
 upstream/src/libcnrun/hosted-neurons.cc            | 168 +++----
 upstream/src/libcnrun/hosted-synapses.cc           |  85 ++--
 upstream/src/libcnrun/model-struct.cc              |  16 +-
 upstream/src/libcnrun/standalone-neurons.cc        | 116 ++---
 upstream/src/libcnrun/standalone-synapses.cc       |  14 +-
 upstream/src/libcnrun/types.cc                     | 335 +++++++------
 upstream/src/libcnrun/types.hh                     | 212 ++++----
 upstream/src/libstilton/Makefile.am                |  19 +-
 upstream/src/libstilton/libstilton.cc              |  47 +-
 upstream/src/libstilton/string.hh                  |   2 +-
 .../src/{libcnrun-lua => lua-cnrun}/.gitignore     |   0
 upstream/src/lua-cnrun/Makefile.am                 |  25 +
 upstream/src/{libcnrun-lua => lua-cnrun}/cnhost.hh |   0
 .../src/{libcnrun-lua => lua-cnrun}/commands.cc    | 180 +++----
 upstream/src/tools/Makefile.am                     |   1 -
 48 files changed, 1857 insertions(+), 816 deletions(-)

diff --git a/debian/.gitignore b/debian/.gitignore
new file mode 100644
index 0000000..397b4a7
--- /dev/null
+++ b/debian/.gitignore
@@ -0,0 +1 @@
+*.log
diff --git a/debian/README.Debian b/debian/README.Debian
index c8e090b..db46043 100644
--- a/debian/README.Debian
+++ b/debian/README.Debian
@@ -5,3 +5,6 @@ For Debian, cnrun is configured --with-tools=yes.  These tools are:
 
  - spike2sdf, for estimation of a spike density function from a record of
    spike times.
+
+Note that this package is not a next-version cnrun; both can be
+installed at the same time.
diff --git a/debian/changelog b/debian/changelog
index 2666ff9..e70229a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,9 @@
 cnrun (2.0.0-1) unstable; urgency=low
 
   * New upstream version.
+  * Separate packaging of shared lib, dev files, tools and lua module.
 
- -- Andrei Zavada <johnhommer at gmail.com>  Mon, 27 Oct 2014 00:46:00 +0300
+ -- Andrei Zavada <johnhommer at gmail.com>  Sat, 01 Nov 2014 02:28:00 +0200
 
 cnrun (1.1.14-1) unstable; urgency=low
 
diff --git a/debian/control b/debian/control
index 34e38bc..e0907bb 100644
--- a/debian/control
+++ b/debian/control
@@ -2,22 +2,34 @@ Source: cnrun
 Section: science
 Priority: optional
 Maintainer: Andrei Zavada <johnhommer at gmail.com>
-Build-Depends: debhelper (>= 9), dh-autoreconf, autoconf-archive,
+Build-Depends: debhelper (>= 9), dh-autoreconf, autoconf-archive, texinfo,
  libgomp1, pkg-config, libgsl0-dev, libxml2-dev,
- liblua5.2-dev
+ liblua5.1-dev | liblua5.2-dev, lua5.1 | lua5.2
 Standards-Version: 3.9.6
 Homepage: http://johnhommer.com/academic/code/cnrun
-Vcs-Git: git://git.debian.org/git/debian-med/cnrun.git
+Vcs-Git: git://anonscm.debian.org/cnrun/cnrun.git
 Vcs-Browser: http://anonscm.debian.org/gitweb/?p=debian-med/cnrun.git;a=summary
 
-Package: libcnrun
+Package: libcnrun2
 Architecture: any
+Pre-Depends: ${misc:Pre-Depends}
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: NeuroML-capable neuronal network simulator (shared lib)
  CNrun is a neuronal network simulator implemented as a Lua package.
  This package contains shared libraries.
  .
- See libcnrun-lua description for extended description.
+ See lua-cnrun description for extended description.
+
+Package: libcnrun2-dev
+Section: libdevel
+Architecture: any
+Depends: libcnrun2 (= ${binary:Version}), ${misc:Depends}
+Suggests: pkg-config
+Description: NeuroML-capable neuronal network simulator (development files)
+ CNrun is a neuronal network simulator implemented as a Lua package.
+ This package contains development files.
+ .
+ See lua-licnrun description for extended description.
 
 Package: cnrun-tools
 Architecture: any
@@ -27,13 +39,12 @@ Description: NeuroML-capable neuronal network simulator (tools)
  This package contains two standalone tools (hh-latency-estimator and
  spike2sdf) that may be of interest to CNrun users.
  .
- See libcnrun-lua description for extended description.
+ See lua-cnrun description for extended description.
 
-Package: libcnrun-lua
+Package: lua-cnrun
 Architecture: any
-Depends: libcnrun, ${shlibs:Depends}, ${misc:Depends}
+Depends: libcnrun2, lua5.1 | lua5.2, ${misc:Depends}
 Suggests: gnuplot
-Recommends: lua
 Description: NeuroML-capable neuronal network simulator (Lua package)
  CNrun is a neuronal network simulator, with these features:
    * a conductance- and rate-based Hodgkin-Huxley neurons, a Rall and
@@ -48,3 +59,7 @@ Description: NeuroML-capable neuronal network simulator (Lua package)
    * interaction (topology push/pull, async connections) with other
      cnrun models running elsewhere on a network, with interactions
      (planned).
+ .
+ Note that there is no `cnrun' executable, which existed in cnrun-1.*.
+ Instead, you write a script for your simulation in Lua, and execute
+ it as detailed in /usr/share/cnrun/examples/example1.lua.
diff --git a/debian/copyright b/debian/copyright
index 0b640c7..7eaf1af 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -4,7 +4,7 @@ Upstream-Contact: Andrei Zavada <johnhommer at gmail.com>
 Source: http://johnhommer.com/academic/code/cnrun/source/
 
 Files: *
-Copyright: 2008-2012 Andrei Zavada <johnhommer at gmail.com>
+Copyright: 2008-2014 Andrei Zavada <johnhommer at gmail.com>
 License: GPL-2+
 
 Files: src/libcnrun/*.cc
diff --git a/debian/libcnrun-lua.install b/debian/libcnrun-lua.install
deleted file mode 100644
index 1561dea..0000000
--- a/debian/libcnrun-lua.install
+++ /dev/null
@@ -1,2 +0,0 @@
-usr/lib/*/cnrun/libcnrun-lua.so
-usr/share/doc/cnrun/examples/example1.lua
diff --git a/debian/libcnrun-lua.postinst b/debian/libcnrun-lua.postinst
deleted file mode 100644
index c92a7eb..0000000
--- a/debian/libcnrun-lua.postinst
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-
-#DEBHELPER#
-
-set -e
-
-case "$1" in
-    configure|upgrade)
-        ln -s /usr/lib/cnrun/libcnrun-lua.so /usr/lib/lua/5.2/cnrun.so
-        ;;
-
-    abort-upgrade|abort-remove|abort-deconfigure|failed-upgrade)
-        rm -f /usr/lib/lua/5.2/cnrun.so
-        ;;
-    *)
-        echo "postinst called with unknown argument \`$1'" >&2
-        exit 1
-        ;;
-esac
-
-exit 0
diff --git a/debian/libcnrun-lua.postrm b/debian/libcnrun-lua.postrm
deleted file mode 100644
index ba0cfc8..0000000
--- a/debian/libcnrun-lua.postrm
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/sh
-
-#DEBHELPER#
-
-set -e
-
-case "$1" in
-    purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
-        rm -f /usr/lib/lua/5.2/cnrun.so
-        ;;
-    *)
-        echo "postrm called with unknown argument \`$1'" >&2
-        exit 1
-        ;;
-esac
-
-exit 0
diff --git a/debian/libcnrun.install b/debian/libcnrun.install
deleted file mode 100644
index 199cec1..0000000
--- a/debian/libcnrun.install
+++ /dev/null
@@ -1,2 +0,0 @@
-usr/lib/*/cnrun/libstilton.so
-usr/lib/*/cnrun/libcnrun.so
diff --git a/debian/libcnrun2-dev.install b/debian/libcnrun2-dev.install
new file mode 100644
index 0000000..23e2166
--- /dev/null
+++ b/debian/libcnrun2-dev.install
@@ -0,0 +1,4 @@
+usr/include/libcnrun/*
+usr/include/libstilton/*
+usr/lib/*/libcnrun.so
+usr/lib/*/pkgconfig/*
diff --git a/debian/libcnrun2.install b/debian/libcnrun2.install
new file mode 100644
index 0000000..480d5e7
--- /dev/null
+++ b/debian/libcnrun2.install
@@ -0,0 +1,2 @@
+usr/lib/*/libcnrun.so.2.0.0
+usr/lib/*/libcnrun.so.2
diff --git a/debian/libcnrun2.symbols b/debian/libcnrun2.symbols
new file mode 100644
index 0000000..cc04aeb
--- /dev/null
+++ b/debian/libcnrun2.symbols
@@ -0,0 +1,492 @@
+libcnrun.so.2 libcnrun2 #MINVER#
+(c++)"cnrun::CNeuronMap::preadvance()@Base" 2.0.0
+(c++)"cnrun::CNeuronMap::CNeuronMap(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double, double, double, cnrun::CModel*, int)@Base" 2.0.0
+(c++)"cnrun::CNeuronMap::CNeuronMap(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double, double, double, cnrun::CModel*, int)@Base" 2.0.0
+(c++)"cnrun::CNeuronMap::~CNeuronMap()@Base" 2.0.0
+(c++)"cnrun::CNeuronMap::~CNeuronMap()@Base" 2.0.0
+(c++)"cnrun::CNeuronMap::~CNeuronMap()@Base" 2.0.0
+(c++)"cnrun::C_BaseUnit::reset_state()@Base" 2.0.0
+(c++)"cnrun::C_BaseUnit::detach_source(cnrun::C_BaseSource*, cnrun::C_BaseUnit::TSinkType, unsigned long)@Base" 2.0.0
+(c++)"cnrun::C_BaseUnit::stop_listening()@Base" 2.0.0
+(c++)"cnrun::C_BaseUnit::start_listening(int)@Base" 2.0.0
+(c++)"cnrun::C_BaseUnit::param_changed_hook()@Base" 2.0.0
+(c++)"cnrun::C_BaseUnit::apprise_from_sources()@Base" 2.0.0
+(c++)"cnrun::C_BaseUnit::tell()@Base" 2.0.0
+(c++)"cnrun::C_BaseUnit::C_BaseUnit(cnrun::TUnitType, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cnrun::CModel*, int)@Base" 2.0.0
+(c++)"cnrun::C_BaseUnit::C_BaseUnit(cnrun::TUnitType, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cnrun::CModel*, int)@Base" 2.0.0
+(c++)"cnrun::C_BaseUnit::~C_BaseUnit()@Base" 2.0.0
+(c++)"cnrun::C_BaseUnit::~C_BaseUnit()@Base" 2.0.0
+(c++)"cnrun::C_BaseUnit::~C_BaseUnit()@Base" 2.0.0
+(c++)"cnrun::CNeuronEC_d::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"cnrun::CNeuronEC_d::~CNeuronEC_d()@Base" 2.0.0
+(c++)"cnrun::CNeuronEC_d::~CNeuronEC_d()@Base" 2.0.0
+(c++)"cnrun::CNeuronEC_d::~CNeuronEC_d()@Base" 2.0.0
+(c++)"cnrun::CNeuronHH_d::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"cnrun::CNeuronHH_d::~CNeuronHH_d()@Base" 2.0.0
+(c++)"cnrun::CNeuronHH_d::~CNeuronHH_d()@Base" 2.0.0
+(c++)"cnrun::CNeuronHH_d::~CNeuronHH_d()@Base" 2.0.0
+(c++)"cnrun::CNeuronHH_r::preadvance()@Base" 2.0.0
+(c++)"cnrun::CNeuronHH_r::~CNeuronHH_r()@Base" 2.0.0
+(c++)"cnrun::CNeuronHH_r::~CNeuronHH_r()@Base" 2.0.0
+(c++)"cnrun::CNeuronHH_r::~CNeuronHH_r()@Base" 2.0.0
+(c++)"cnrun::CSourceTape::CSourceTape(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cnrun::TSourceLoopingOption)@Base" 2.0.0
+(c++)"cnrun::CSourceTape::CSourceTape(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cnrun::TSourceLoopingOption)@Base" 2.0.0
+(c++)"cnrun::CSourceTape::~CSourceTape()@Base" 2.0.0
+(c++)"cnrun::CSourceTape::~CSourceTape()@Base" 2.0.0
+(c++)"cnrun::CSourceTape::~CSourceTape()@Base" 2.0.0
+(c++)"cnrun::CSourceTape::operator()(double)@Base" 2.0.0
+(c++)"cnrun::CSynapseMap::preadvance()@Base" 2.0.0
+(c++)"cnrun::CSynapseMap::CSynapseMap(cnrun::C_BaseNeuron*, cnrun::C_BaseNeuron*, double, cnrun::CModel*, int, cnrun::TUnitType)@Base" 2.0.0
+(c++)"cnrun::CSynapseMap::CSynapseMap(cnrun::C_BaseNeuron*, cnrun::C_BaseNeuron*, double, cnrun::CModel*, int, cnrun::TUnitType)@Base" 2.0.0
+(c++)"cnrun::CSynapseMap::~CSynapseMap()@Base" 2.0.0
+(c++)"cnrun::CSynapseMap::~CSynapseMap()@Base" 2.0.0
+(c++)"cnrun::CSynapseMap::~CSynapseMap()@Base" 2.0.0
+(c++)"cnrun::CNeuronECA_d::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"cnrun::CNeuronECA_d::~CNeuronECA_d()@Base" 2.0.0
+(c++)"cnrun::CNeuronECA_d::~CNeuronECA_d()@Base" 2.0.0
+(c++)"cnrun::CNeuronECA_d::~CNeuronECA_d()@Base" 2.0.0
+(c++)"cnrun::CNeuronHH2_d::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"cnrun::CNeuronHH2_d::~CNeuronHH2_d()@Base" 2.0.0
+(c++)"cnrun::CNeuronHH2_d::~CNeuronHH2_d()@Base" 2.0.0
+(c++)"cnrun::CNeuronHH2_d::~CNeuronHH2_d()@Base" 2.0.0
+(c++)"cnrun::CSourceNoise::distribution_s(cnrun::CSourceNoise::TDistribution)@Base" 2.0.0
+(c++)"cnrun::CSourceNoise::distribution_by_name(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0
+(c++)"cnrun::CSourceNoise::CSourceNoise(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double, double, double, cnrun::CSourceNoise::TDistribution, int)@Base" 2.0.0
+(c++)"cnrun::CSourceNoise::CSourceNoise(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double, double, double, cnrun::CSourceNoise::TDistribution, int)@Base" 2.0.0
+(c++)"cnrun::CSourceNoise::~CSourceNoise()@Base" 2.0.0
+(c++)"cnrun::CSourceNoise::~CSourceNoise()@Base" 2.0.0
+(c++)"cnrun::CSourceNoise::~CSourceNoise()@Base" 2.0.0
+(c++)"cnrun::CSourceNoise::operator()(double)@Base" 2.0.0
+(c++)"cnrun::C_BaseNeuron::reset_state()@Base" 2.0.0
+(c++)"cnrun::C_BaseNeuron::possibly_fire()@Base" 2.0.0
+(c++)"cnrun::C_BaseNeuron::do_detect_spike_or_whatever()@Base" 2.0.0
+(c++)"cnrun::C_BaseNeuron::~C_BaseNeuron()@Base" 2.0.0
+(c++)"cnrun::C_BaseNeuron::~C_BaseNeuron()@Base" 2.0.0
+(c++)"cnrun::C_BaseNeuron::~C_BaseNeuron()@Base" 2.0.0
+(c++)"cnrun::C_BaseSource::is_periodic()@Base" 2.0.0
+(c++)"cnrun::C_BaseSource::type_s(cnrun::TSourceType)@Base" 2.0.0
+(c++)"cnrun::C_BaseSource::operator()(double)@Base" 2.0.0
+(c++)"cnrun::CSynapseAB_dd::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"cnrun::CSynapseAB_dd::~CSynapseAB_dd()@Base" 2.0.0
+(c++)"cnrun::CSynapseAB_dd::~CSynapseAB_dd()@Base" 2.0.0
+(c++)"cnrun::CSynapseAB_dd::~CSynapseAB_dd()@Base" 2.0.0
+(c++)"cnrun::CSynapseAB_rr::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"cnrun::CSynapseAB_rr::param_changed_hook()@Base" 2.0.0
+(c++)"cnrun::CSynapseAB_rr::~CSynapseAB_rr()@Base" 2.0.0
+(c++)"cnrun::CSynapseAB_rr::~CSynapseAB_rr()@Base" 2.0.0
+(c++)"cnrun::CSynapseAB_rr::~CSynapseAB_rr()@Base" 2.0.0
+(c++)"cnrun::CSynapseMxMap::preadvance()@Base" 2.0.0
+(c++)"cnrun::CSynapseMxMap::update_queue()@Base" 2.0.0
+(c++)"cnrun::CSynapseMxMap::~CSynapseMxMap()@Base" 2.0.0
+(c++)"cnrun::CSynapseMxMap::~CSynapseMxMap()@Base" 2.0.0
+(c++)"cnrun::CSynapseMxMap::~CSynapseMxMap()@Base" 2.0.0
+(c++)"cnrun::C_BaseSynapse::reset_state()@Base" 2.0.0
+(c++)"cnrun::C_BaseSynapse::update_queue()@Base" 2.0.0
+(c++)"cnrun::C_BaseSynapse::clone_to_target(cnrun::C_BaseNeuron*, double)@Base" 2.0.0
+(c++)"cnrun::C_BaseSynapse::make_clone_independent(cnrun::C_BaseNeuron*)@Base" 2.0.0
+(c++)"cnrun::C_BaseSynapse::C_BaseSynapse(cnrun::TUnitType, cnrun::C_BaseNeuron*, cnrun::C_BaseNeuron*, double, cnrun::CModel*, int)@Base" 2.0.0
+(c++)"cnrun::C_BaseSynapse::C_BaseSynapse(cnrun::TUnitType, cnrun::C_BaseNeuron*, cnrun::C_BaseNeuron*, double, cnrun::CModel*, int)@Base" 2.0.0
+(c++)"cnrun::C_BaseSynapse::~C_BaseSynapse()@Base" 2.0.0
+(c++)"cnrun::C_BaseSynapse::~C_BaseSynapse()@Base" 2.0.0
+(c++)"cnrun::C_BaseSynapse::~C_BaseSynapse()@Base" 2.0.0
+(c++)"cnrun::CIntegrateRK65::cycle()@Base" 2.0.0
+(c++)"cnrun::CIntegrateRK65::fixate()@Base" 2.0.0
+(c++)"cnrun::CIntegrateRK65::prepare()@Base" 2.0.0
+(c++)"cnrun::CIntegrateRK65::~CIntegrateRK65()@Base" 2.0.0
+(c++)"cnrun::CIntegrateRK65::~CIntegrateRK65()@Base" 2.0.0
+(c++)"cnrun::CIntegrateRK65::~CIntegrateRK65()@Base" 2.0.0
+(c++)"cnrun::C_HostedNeuron::reset_vars()@Base" 2.0.0
+(c++)"cnrun::C_HostedNeuron::var_value(unsigned long)@Base" 2.0.0
+(c++)"cnrun::C_HostedNeuron::C_HostedNeuron(cnrun::TUnitType, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double, double, double, cnrun::CModel*, int, cnrun::TIncludeOption)@Base" 2.0.0
+(c++)"cnrun::C_HostedNeuron::C_HostedNeuron(cnrun::TUnitType, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double, double, double, cnrun::CModel*, int, cnrun::TIncludeOption)@Base" 2.0.0
+(c++)"cnrun::CNeuronDotPulse::possibly_fire()@Base" 2.0.0
+(c++)"cnrun::CNeuronDotPulse::param_changed_hook()@Base" 2.0.0
+(c++)"cnrun::CNeuronDotPulse::~CNeuronDotPulse()@Base" 2.0.0
+(c++)"cnrun::CNeuronDotPulse::~CNeuronDotPulse()@Base" 2.0.0
+(c++)"cnrun::CNeuronDotPulse::~CNeuronDotPulse()@Base" 2.0.0
+(c++)"cnrun::CSourceFunction::~CSourceFunction()@Base" 2.0.0
+(c++)"cnrun::CSourceFunction::~CSourceFunction()@Base" 2.0.0
+(c++)"cnrun::CSourceFunction::~CSourceFunction()@Base" 2.0.0
+(c++)"cnrun::CSourceFunction::operator()(double)@Base" 2.0.0
+(c++)"cnrun::CSourcePeriodic::is_periodic()@Base" 2.0.0
+(c++)"cnrun::CSourcePeriodic::CSourcePeriodic(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cnrun::TSourceLoopingOption, double)@Base" 2.0.0
+(c++)"cnrun::CSourcePeriodic::CSourcePeriodic(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cnrun::TSourceLoopingOption, double)@Base" 2.0.0
+(c++)"cnrun::CSourcePeriodic::~CSourcePeriodic()@Base" 2.0.0
+(c++)"cnrun::CSourcePeriodic::~CSourcePeriodic()@Base" 2.0.0
+(c++)"cnrun::CSourcePeriodic::~CSourcePeriodic()@Base" 2.0.0
+(c++)"cnrun::CSourcePeriodic::operator()(double)@Base" 2.0.0
+(c++)"cnrun::CSynapseMxAB_dd::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"cnrun::CSynapseMxAB_dd::reset_state()@Base" 2.0.0
+(c++)"cnrun::CSynapseMxAB_dd::update_queue()@Base" 2.0.0
+(c++)"cnrun::CSynapseMxAB_dd::~CSynapseMxAB_dd()@Base" 2.0.0
+(c++)"cnrun::CSynapseMxAB_dd::~CSynapseMxAB_dd()@Base" 2.0.0
+(c++)"cnrun::CSynapseMxAB_dd::~CSynapseMxAB_dd()@Base" 2.0.0
+(c++)"cnrun::CSynapseMxAB_dr::~CSynapseMxAB_dr()@Base" 2.0.0
+(c++)"cnrun::CSynapseMxAB_dr::~CSynapseMxAB_dr()@Base" 2.0.0
+(c++)"cnrun::CSynapseMxAB_dr::~CSynapseMxAB_dr()@Base" 2.0.0
+(c++)"cnrun::CSynapseRall_dd::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"cnrun::CSynapseRall_dd::~CSynapseRall_dd()@Base" 2.0.0
+(c++)"cnrun::CSynapseRall_dd::~CSynapseRall_dd()@Base" 2.0.0
+(c++)"cnrun::CSynapseRall_dd::~CSynapseRall_dd()@Base" 2.0.0
+(c++)"cnrun::C_HostedSynapse::reset_vars()@Base" 2.0.0
+(c++)"cnrun::C_HostedSynapse::var_value(unsigned long)@Base" 2.0.0
+(c++)"cnrun::C_HostedSynapse::C_HostedSynapse(cnrun::TUnitType, cnrun::C_BaseNeuron*, cnrun::C_BaseNeuron*, double, cnrun::CModel*, int, cnrun::TIncludeOption)@Base" 2.0.0
+(c++)"cnrun::C_HostedSynapse::C_HostedSynapse(cnrun::TUnitType, cnrun::C_BaseNeuron*, cnrun::C_BaseNeuron*, double, cnrun::CModel*, int, cnrun::TIncludeOption)@Base" 2.0.0
+(c++)"cnrun::COscillatorVdPol::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"cnrun::COscillatorVdPol::~COscillatorVdPol()@Base" 2.0.0
+(c++)"cnrun::COscillatorVdPol::~COscillatorVdPol()@Base" 2.0.0
+(c++)"cnrun::COscillatorVdPol::~COscillatorVdPol()@Base" 2.0.0
+(c++)"cnrun::COscillatorPoisson::possibly_fire()@Base" 2.0.0
+(c++)"cnrun::COscillatorPoisson::do_detect_spike_or_whatever()@Base" 2.0.0
+(c++)"cnrun::COscillatorPoisson::~COscillatorPoisson()@Base" 2.0.0
+(c++)"cnrun::COscillatorPoisson::~COscillatorPoisson()@Base" 2.0.0
+(c++)"cnrun::COscillatorPoisson::~COscillatorPoisson()@Base" 2.0.0
+(c++)"cnrun::CSynapseABMinus_dd::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"cnrun::CSynapseABMinus_dd::~CSynapseABMinus_dd()@Base" 2.0.0
+(c++)"cnrun::CSynapseABMinus_dd::~CSynapseABMinus_dd()@Base" 2.0.0
+(c++)"cnrun::CSynapseABMinus_dd::~CSynapseABMinus_dd()@Base" 2.0.0
+(c++)"cnrun::C_StandaloneNeuron::reset_vars()@Base" 2.0.0
+(c++)"cnrun::C_StandaloneNeuron::var_value(unsigned long)@Base" 2.0.0
+(c++)"cnrun::C_StandaloneNeuron::C_StandaloneNeuron(cnrun::TUnitType, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double, double, double, cnrun::CModel*, int)@Base" 2.0.0
+(c++)"cnrun::C_StandaloneNeuron::C_StandaloneNeuron(cnrun::TUnitType, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double, double, double, cnrun::CModel*, int)@Base" 2.0.0
+(c++)"cnrun::C_StandaloneNeuron::~C_StandaloneNeuron()@Base" 2.0.0
+(c++)"cnrun::C_StandaloneNeuron::~C_StandaloneNeuron()@Base" 2.0.0
+(c++)"cnrun::C_StandaloneNeuron::~C_StandaloneNeuron()@Base" 2.0.0
+(c++)"cnrun::COscillatorColpitts::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"cnrun::COscillatorColpitts::~COscillatorColpitts()@Base" 2.0.0
+(c++)"cnrun::COscillatorColpitts::~COscillatorColpitts()@Base" 2.0.0
+(c++)"cnrun::COscillatorColpitts::~COscillatorColpitts()@Base" 2.0.0
+(c++)"cnrun::C_StandaloneSynapse::reset_vars()@Base" 2.0.0
+(c++)"cnrun::C_StandaloneSynapse::var_value(unsigned long)@Base" 2.0.0
+(c++)"cnrun::C_StandaloneSynapse::C_StandaloneSynapse(cnrun::TUnitType, cnrun::C_BaseNeuron*, cnrun::C_BaseNeuron*, double, cnrun::CModel*, int)@Base" 2.0.0
+(c++)"cnrun::C_StandaloneSynapse::C_StandaloneSynapse(cnrun::TUnitType, cnrun::C_BaseNeuron*, cnrun::C_BaseNeuron*, double, cnrun::CModel*, int)@Base" 2.0.0
+(c++)"cnrun::CN_Vars_NeuronMap at Base" 2.0.0
+(c++)"cnrun::CN_Vars_SynapseAB at Base" 2.0.0
+(c++)"cnrun::CN_Vars_NeuronEC_d at Base" 2.0.0
+(c++)"cnrun::CN_Vars_NeuronHH_d at Base" 2.0.0
+(c++)"cnrun::CN_Vars_NeuronHH_r at Base" 2.0.0
+(c++)"cnrun::COscillatorDotPoisson::possibly_fire()@Base" 2.0.0
+(c++)"cnrun::COscillatorDotPoisson::do_detect_spike_or_whatever()@Base" 2.0.0
+(c++)"cnrun::COscillatorDotPoisson::~COscillatorDotPoisson()@Base" 2.0.0
+(c++)"cnrun::COscillatorDotPoisson::~COscillatorDotPoisson()@Base" 2.0.0
+(c++)"cnrun::COscillatorDotPoisson::~COscillatorDotPoisson()@Base" 2.0.0
+(c++)"cnrun::CN_Params_NeuronMap at Base" 2.0.0
+(c++)"cnrun::CN_Vars_NeuronECA_d at Base" 2.0.0
+(c++)"cnrun::CN_Vars_NeuronHH2_d at Base" 2.0.0
+(c++)"cnrun::CN_Vars_SynapseRall at Base" 2.0.0
+(c++)"cnrun::unit_family_by_string(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0
+(c++)"cnrun::C_StandaloneAttributes::preadvance()@Base" 2.0.0
+(c++)"cnrun::C_StandaloneAttributes::~C_StandaloneAttributes()@Base" 2.0.0
+(c++)"cnrun::C_StandaloneAttributes::~C_StandaloneAttributes()@Base" 2.0.0
+(c++)"cnrun::CN_Params_NeuronEC_d at Base" 2.0.0
+(c++)"cnrun::CN_Params_NeuronHH_d at Base" 2.0.0
+(c++)"cnrun::CN_Params_NeuronHH_r at Base" 2.0.0
+(c++)"cnrun::CN_Params_SynapseMap at Base" 2.0.0
+(c++)"cnrun::CN_VarSyms_NeuronMap at Base" 2.0.0
+(c++)"cnrun::CN_VarSyms_SynapseAB at Base" 2.0.0
+(c++)"cnrun::unit_species_by_string(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0
+(c++)"cnrun::CN_Params_NeuronECA_d at Base" 2.0.0
+(c++)"cnrun::CN_Params_NeuronHH2_d at Base" 2.0.0
+(c++)"cnrun::CN_VarNames_NeuronMap at Base" 2.0.0
+(c++)"cnrun::CN_VarNames_SynapseAB at Base" 2.0.0
+(c++)"cnrun::CN_VarSyms_NeuronEC_d at Base" 2.0.0
+(c++)"cnrun::CN_VarSyms_NeuronHH_d at Base" 2.0.0
+(c++)"cnrun::CN_VarSyms_NeuronHH_r at Base" 2.0.0
+(c++)"cnrun::CN_ParamSyms_NeuronMap at Base" 2.0.0
+(c++)"cnrun::CN_Params_SynapseAB_dd at Base" 2.0.0
+(c++)"cnrun::CN_Params_SynapseAB_rr at Base" 2.0.0
+(c++)"cnrun::CN_VarNames_NeuronEC_d at Base" 2.0.0
+(c++)"cnrun::CN_VarNames_NeuronHH_d at Base" 2.0.0
+(c++)"cnrun::CN_VarNames_NeuronHH_r at Base" 2.0.0
+(c++)"cnrun::CN_VarSyms_NeuronECA_d at Base" 2.0.0
+(c++)"cnrun::CN_VarSyms_SynapseRall at Base" 2.0.0
+(c++)"cnrun::CN_Vars_NeuronDotPulse at Base" 2.0.0
+(c++)"cnrun::CN_ParamNames_NeuronMap at Base" 2.0.0
+(c++)"cnrun::CN_ParamSyms_NeuronEC_d at Base" 2.0.0
+(c++)"cnrun::CN_ParamSyms_NeuronHH_d at Base" 2.0.0
+(c++)"cnrun::CN_ParamSyms_NeuronHH_r at Base" 2.0.0
+(c++)"cnrun::CN_ParamSyms_SynapseMap at Base" 2.0.0
+(c++)"cnrun::CN_VarNames_NeuronECA_d at Base" 2.0.0
+(c++)"cnrun::CN_VarNames_SynapseRall at Base" 2.0.0
+(c++)"cnrun::CN_Vars_OscillatorVdPol at Base" 2.0.0
+(c++)"cnrun::CN_ParamNames_NeuronEC_d at Base" 2.0.0
+(c++)"cnrun::CN_ParamNames_NeuronHH_d at Base" 2.0.0
+(c++)"cnrun::CN_ParamNames_NeuronHH_r at Base" 2.0.0
+(c++)"cnrun::CN_ParamNames_SynapseMap at Base" 2.0.0
+(c++)"cnrun::CN_ParamSyms_NeuronECA_d at Base" 2.0.0
+(c++)"cnrun::CN_ParamSyms_NeuronHH2_d at Base" 2.0.0
+(c++)"cnrun::CN_Params_NeuronDotPulse at Base" 2.0.0
+(c++)"cnrun::CN_Params_SynapseMxAB_dd at Base" 2.0.0
+(c++)"cnrun::CN_Params_SynapseMxAB_dr at Base" 2.0.0
+(c++)"cnrun::CN_Params_SynapseRall_dd at Base" 2.0.0
+(c++)"cnrun::C_StandaloneRateBasedNeuron::~C_StandaloneRateBasedNeuron()@Base" 2.0.0
+(c++)"cnrun::C_StandaloneRateBasedNeuron::~C_StandaloneRateBasedNeuron()@Base" 2.0.0
+(c++)"cnrun::C_StandaloneRateBasedNeuron::~C_StandaloneRateBasedNeuron()@Base" 2.0.0
+(c++)"cnrun::CN_ParamNames_NeuronECA_d at Base" 2.0.0
+(c++)"cnrun::CN_ParamNames_NeuronHH2_d at Base" 2.0.0
+(c++)"cnrun::CN_ParamSyms_SynapseAB_dd at Base" 2.0.0
+(c++)"cnrun::CN_ParamSyms_SynapseAB_dr at Base" 2.0.0
+(c++)"cnrun::CN_ParamSyms_SynapseAB_rr at Base" 2.0.0
+(c++)"cnrun::CN_Params_OscillatorVdPol at Base" 2.0.0
+(c++)"cnrun::CN_VarSyms_NeuronDotPulse at Base" 2.0.0
+(c++)"cnrun::CN_Vars_OscillatorPoisson at Base" 2.0.0
+(c++)"cnrun::CN_ParamNames_SynapseAB_dd at Base" 2.0.0
+(c++)"cnrun::CN_ParamNames_SynapseAB_dr at Base" 2.0.0
+(c++)"cnrun::CN_ParamNames_SynapseAB_rr at Base" 2.0.0
+(c++)"cnrun::CN_VarNames_NeuronDotPulse at Base" 2.0.0
+(c++)"cnrun::CN_VarSyms_OscillatorVdPol at Base" 2.0.0
+(c++)"cnrun::CN_Vars_OscillatorColpitts at Base" 2.0.0
+(c++)"cnrun::cnmodel_dump_available_units()@Base" 2.0.0
+(c++)"cnrun::CN_ParamSyms_NeuronDotPulse at Base" 2.0.0
+(c++)"cnrun::CN_ParamSyms_SynapseRall_dd at Base" 2.0.0
+(c++)"cnrun::CN_Params_OscillatorPoisson at Base" 2.0.0
+(c++)"cnrun::CN_Params_SynapseABMinus_dd at Base" 2.0.0
+(c++)"cnrun::CN_VarNames_OscillatorVdPol at Base" 2.0.0
+(c++)"cnrun::C_HostedConductanceBasedNeuron::do_detect_spike_or_whatever()@Base" 2.0.0
+(c++)"cnrun::CN_ParamNames_NeuronDotPulse at Base" 2.0.0
+(c++)"cnrun::CN_ParamNames_SynapseRall_dd at Base" 2.0.0
+(c++)"cnrun::CN_ParamSyms_OscillatorVdPol at Base" 2.0.0
+(c++)"cnrun::CN_Params_OscillatorColpitts at Base" 2.0.0
+(c++)"cnrun::CN_VarSyms_OscillatorPoisson at Base" 2.0.0
+(c++)"cnrun::CN_Vars_OscillatorPoissonDot at Base" 2.0.0
+(c++)"cnrun::CN_ParamNames_OscillatorVdPol at Base" 2.0.0
+(c++)"cnrun::CN_VarNames_OscillatorPoisson at Base" 2.0.0
+(c++)"cnrun::CN_VarSyms_OscillatorColpitts at Base" 2.0.0
+(c++)"cnrun::CN_ParamSyms_OscillatorPoisson at Base" 2.0.0
+(c++)"cnrun::CN_Params_OscillatorPoissonDot at Base" 2.0.0
+(c++)"cnrun::CN_VarNames_OscillatorColpitts at Base" 2.0.0
+(c++)"cnrun::CN_ParamNames_OscillatorPoisson at Base" 2.0.0
+(c++)"cnrun::CN_ParamSyms_OscillatorColpitts at Base" 2.0.0
+(c++)"cnrun::CN_VarSyms_OscillatorPoissonDot at Base" 2.0.0
+(c++)"cnrun::C_StandaloneConductanceBasedNeuron::~C_StandaloneConductanceBasedNeuron()@Base" 2.0.0
+(c++)"cnrun::C_StandaloneConductanceBasedNeuron::~C_StandaloneConductanceBasedNeuron()@Base" 2.0.0
+(c++)"cnrun::C_StandaloneConductanceBasedNeuron::~C_StandaloneConductanceBasedNeuron()@Base" 2.0.0
+(c++)"cnrun::CN_ParamNames_OscillatorColpitts at Base" 2.0.0
+(c++)"cnrun::CN_VarNames_OscillatorPoissonDot at Base" 2.0.0
+(c++)"cnrun::CN_ParamSyms_OscillatorPoissonDot at Base" 2.0.0
+(c++)"cnrun::CN_ParamNames_OscillatorPoissonDot at Base" 2.0.0
+(c++)"cnrun::CModel::exclude_unit(cnrun::C_BaseUnit*, cnrun::CModel::TExcludeOption)@Base" 2.0.0
+(c++)"cnrun::CModel::include_unit(cnrun::C_HostedNeuron*, cnrun::TIncludeOption)@Base" 2.0.0
+(c++)"cnrun::CModel::include_unit(cnrun::C_HostedSynapse*, cnrun::TIncludeOption)@Base" 2.0.0
+(c++)"cnrun::CModel::include_unit(cnrun::C_StandaloneNeuron*)@Base" 2.0.0
+(c++)"cnrun::CModel::include_unit(cnrun::C_StandaloneSynapse*)@Base" 2.0.0
+(c++)"cnrun::CModel::prepare_advance()@Base" 2.0.0
+(c++)"cnrun::CModel::export_NetworkML(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0
+(c++)"cnrun::CModel::import_NetworkML(_xmlDoc*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cnrun::CModel::TNMLImportOption)@Base" 2.0.0
+(c++)"cnrun::CModel::import_NetworkML(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cnrun::CModel::TNMLImportOption)@Base" 2.0.0
+(c++)"cnrun::CModel::_setup_schedulers()@Base" 2.0.0
+(c++)"cnrun::CModel::coalesce_synapses()@Base" 2.0.0
+(c++)"cnrun::CModel::register_listener(cnrun::C_BaseUnit*)@Base" 2.0.0
+(c++)"cnrun::CModel::_include_base_unit(cnrun::C_BaseUnit*)@Base" 2.0.0
+(c++)"cnrun::CModel::add_neuron_species(cnrun::TUnitType, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cnrun::TIncludeOption, double, double, double)@Base" 2.0.0
+(c++)"cnrun::CModel::add_neuron_species(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cnrun::TIncludeOption, double, double, double)@Base" 2.0.0
+(c++)"cnrun::CModel::cull_deaf_synapses()@Base" 2.0.0
+(c++)"cnrun::CModel::finalize_additions()@Base" 2.0.0
+(c++)"cnrun::CModel::add_synapse_species(cnrun::TUnitType, cnrun::C_BaseNeuron*, cnrun::C_BaseNeuron*, double, cnrun::CModel::TSynapseCloningOption, cnrun::TIncludeOption)@Base" 2.0.0
+(c++)"cnrun::CModel::add_synapse_species(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double, cnrun::CModel::TSynapseCloningOption, cnrun::TIncludeOption)@Base" 2.0.0
+(c++)"cnrun::CModel::cull_blind_synapses()@Base" 2.0.0
+(c++)"cnrun::CModel::process_putout_tags(std::list<cnrun::CModel::STagGroup, std::allocator<cnrun::CModel::STagGroup> > const&)@Base" 2.0.0
+(c++)"cnrun::CModel::unregister_listener(cnrun::C_BaseUnit*)@Base" 2.0.0
+(c++)"cnrun::CModel::_do_advance_on_mixed(double, double*)@Base" 2.0.0
+(c++)"cnrun::CModel::_process_populations(_xmlNode*)@Base" 2.0.0
+(c++)"cnrun::CModel::_process_projections(_xmlNode*)@Base" 2.0.0
+(c++)"cnrun::CModel::register_spikelogger(cnrun::C_BaseNeuron*)@Base" 2.0.0
+(c++)"cnrun::CModel::process_decimate_tags(std::list<cnrun::CModel::STagGroupDecimate, std::allocator<cnrun::CModel::STagGroupDecimate> > const&)@Base" 2.0.0
+(c++)"cnrun::CModel::process_listener_tags(std::list<cnrun::CModel::STagGroupListener, std::allocator<cnrun::CModel::STagGroupListener> > const&)@Base" 2.0.0
+(c++)"cnrun::CModel::reset_state_all_units()@Base" 2.0.0
+(c++)"cnrun::CModel::unregister_spikelogger(cnrun::C_BaseNeuron*)@Base" 2.0.0
+(c++)"cnrun::CModel::process_spikelogger_tags(std::list<cnrun::CModel::STagGroupSpikelogger, std::allocator<cnrun::CModel::STagGroupSpikelogger> > const&)@Base" 2.0.0
+(c++)"cnrun::CModel::_do_advance_on_pure_hosted(double, double*)@Base" 2.0.0
+(c++)"cnrun::CModel::register_unit_with_sources(cnrun::C_BaseUnit*)@Base" 2.0.0
+(c++)"cnrun::CModel::_do_advance_on_pure_ddtbound(double, double*)@Base" 2.0.0
+(c++)"cnrun::CModel::process_paramset_source_tags(std::list<cnrun::CModel::STagGroupSource, std::allocator<cnrun::CModel::STagGroupSource> > const&)@Base" 2.0.0
+(c++)"cnrun::CModel::process_paramset_static_tags(std::list<cnrun::CModel::STagGroupNeuronParmSet, std::allocator<cnrun::CModel::STagGroupNeuronParmSet> > const&)@Base" 2.0.0
+(c++)"cnrun::CModel::process_paramset_static_tags(std::list<cnrun::CModel::STagGroupSynapseParmSet, std::allocator<cnrun::CModel::STagGroupSynapseParmSet> > const&)@Base" 2.0.0
+(c++)"cnrun::CModel::unregister_unit_with_sources(cnrun::C_BaseUnit*)@Base" 2.0.0
+(c++)"cnrun::CModel::_process_population_instances(_xmlNode*, unsigned char const*, unsigned char const*)@Base" 2.0.0
+(c++)"cnrun::CModel::_do_advance_on_pure_standalone(double, double*)@Base" 2.0.0
+(c++)"cnrun::CModel::_process_projection_connections(_xmlNode*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*)@Base" 2.0.0
+(c++)"cnrun::CModel::reset(cnrun::CModel::TResetOption)@Base" 2.0.0
+(c++)"cnrun::CModel::advance(double, double*)@Base" 2.0.0
+(c++)"cnrun::CModel::CModel(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cnrun::CIntegrate_base*, cnrun::SModelOptions const&)@Base" 2.0.0
+(c++)"cnrun::CModel::CModel(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cnrun::CIntegrate_base*, cnrun::SModelOptions const&)@Base" 2.0.0
+(c++)"cnrun::CModel::~CModel()@Base" 2.0.0
+(c++)"cnrun::CModel::~CModel()@Base" 2.0.0
+(c++)"cnrun::CModel::~CModel()@Base" 2.0.0
+(c++)"cnrun::global::precision at Base" 2.0.0
+(c++)"cnrun::global::verbosely at Base" 2.0.0
+(c++)"cnrun::__CNUDT at Base" 2.0.0
+(c++)"cnrun::stilton::str::dhms_colon(double, int)@Base" 2.0.0
+(c++)"cnrun::stilton::str::svasprintf(char const*, __va_list_tag*)@Base" 2.0.0
+(c++)"cnrun::stilton::str::homedir2tilda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0
+(c++)"cnrun::stilton::str::homedir2tilda(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@Base" 2.0.0
+(c++)"cnrun::stilton::str::tilda2homedir(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0
+(c++)"cnrun::stilton::str::tilda2homedir(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@Base" 2.0.0
+(c++)"cnrun::stilton::str::tokens_trimmed(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*)@Base" 2.0.0
+(c++)"cnrun::stilton::str::decompose_double(double, double*, int*)@Base" 2.0.0
+(c++)"cnrun::stilton::str::double_dot_aligned_s(double, int, int)@Base" 2.0.0
+(c++)"cnrun::stilton::str::pad(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long)@Base" 2.0.0
+(c++)"cnrun::stilton::str::dhms(double, int)@Base" 2.0.0
+(c++)"std::basic_string<char, std::char_traits<char>, std::allocator<char> > cnrun::stilton::str::join<std::list<double, std::allocator<double> > >(std::list<double, std::allocator<double> > const&, char const*)@Base" 2.0.0
+(c++)"std::basic_string<char, std::char_traits<char>, std::allocator<char> > cnrun::stilton::str::join<std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, char const*)@Base" 2.0.0
+(c++)"cnrun::stilton::str::trim(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0
+(c++)"cnrun::stilton::str::tokens(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*)@Base" 2.0.0
+(c++)"cnrun::stilton::str::sasprintf(char const*, ...)@Base" 2.0.0
+(c++)"cnrun::C_BaseUnit::var_idx_by_sym(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const at Base" 2.0.0
+(c++)"cnrun::C_BaseUnit::param_idx_by_sym(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const at Base" 2.0.0
+(c++)"cnrun::C_BaseUnit::dump(bool, _IO_FILE*) const at Base" 2.0.0
+(c++)"cnrun::CNeuronHH_r::F(std::vector<double, std::allocator<double> >&) const at Base" 2.0.0
+(c++)"cnrun::CSourceTape::dump(_IO_FILE*) const at Base" 2.0.0
+(c++)"cnrun::CSynapseMap::Isyn(cnrun::C_BaseNeuron const&, double) const at Base" 2.0.0
+(c++)"cnrun::CSynapseMap::Isyn(std::vector<double, std::allocator<double> >&, cnrun::C_BaseNeuron const&, double) const at Base" 2.0.0
+(c++)"cnrun::CSourceNoise::dump(_IO_FILE*) const at Base" 2.0.0
+(c++)"cnrun::C_BaseNeuron::connects_to(cnrun::C_BaseNeuron const&) const at Base" 2.0.0
+(c++)"cnrun::C_BaseNeuron::connects_via(cnrun::C_BaseNeuron const&, double*) const at Base" 2.0.0
+(c++)"cnrun::C_BaseNeuron::n_spikes_in_last_dt() const at Base" 2.0.0
+(c++)"cnrun::C_BaseNeuron::E(std::vector<double, std::allocator<double> >&) const at Base" 2.0.0
+(c++)"cnrun::C_BaseNeuron::E() const at Base" 2.0.0
+(c++)"cnrun::C_BaseNeuron::F(std::vector<double, std::allocator<double> >&) const at Base" 2.0.0
+(c++)"cnrun::C_BaseNeuron::F() const at Base" 2.0.0
+(c++)"cnrun::C_BaseNeuron::dump(bool, _IO_FILE*) const at Base" 2.0.0
+(c++)"cnrun::CSynapseAB_dd::Isyn(cnrun::C_BaseNeuron const&, double) const at Base" 2.0.0
+(c++)"cnrun::CSynapseAB_dd::Isyn(std::vector<double, std::allocator<double> >&, cnrun::C_BaseNeuron const&, double) const at Base" 2.0.0
+(c++)"cnrun::CSynapseAB_rr::Isyn(cnrun::C_BaseNeuron const&, double) const at Base" 2.0.0
+(c++)"cnrun::CSynapseAB_rr::Isyn(std::vector<double, std::allocator<double> >&, cnrun::C_BaseNeuron const&, double) const at Base" 2.0.0
+(c++)"cnrun::C_BaseSynapse::dump(bool, _IO_FILE*) const at Base" 2.0.0
+(c++)"cnrun::C_HostedNeuron::get_var_value(unsigned long) const at Base" 2.0.0
+(c++)"cnrun::CSourceFunction::dump(_IO_FILE*) const at Base" 2.0.0
+(c++)"cnrun::CSourcePeriodic::dump(_IO_FILE*) const at Base" 2.0.0
+(c++)"cnrun::CSynapseMxAB_dr::Isyn(cnrun::C_BaseNeuron const&, double) const at Base" 2.0.0
+(c++)"cnrun::CSynapseMxAB_dr::Isyn(std::vector<double, std::allocator<double> >&, cnrun::C_BaseNeuron const&, double) const at Base" 2.0.0
+(c++)"cnrun::CSynapseRall_dd::Isyn(cnrun::C_BaseNeuron const&, double) const at Base" 2.0.0
+(c++)"cnrun::CSynapseRall_dd::Isyn(std::vector<double, std::allocator<double> >&, cnrun::C_BaseNeuron const&, double) const at Base" 2.0.0
+(c++)"cnrun::C_HostedSynapse::get_var_value(unsigned long) const at Base" 2.0.0
+(c++)"cnrun::C_StandaloneNeuron::get_var_value(unsigned long) const at Base" 2.0.0
+(c++)"cnrun::C_StandaloneSynapse::get_var_value(unsigned long) const at Base" 2.0.0
+(c++)"cnrun::SSpikeloggerService::sync_history() const at Base" 2.0.0
+(c++)"cnrun::SSpikeloggerService::n_spikes_since(double) const at Base" 2.0.0
+(c++)"cnrun::SSpikeloggerService::get_sxf_vector_custom(std::vector<double, std::allocator<double> >*, std::vector<double, std::allocator<double> >*, std::vector<unsigned long, std::allocator<unsigned long> >*, double, double, double, double) const at Base" 2.0.0
+(c++)"cnrun::SSpikeloggerService::sdf(double, double, double, unsigned long*) const at Base" 2.0.0
+(c++)"cnrun::SSpikeloggerService::shf(double, double) const at Base" 2.0.0
+(c++)"cnrun::C_HostedRateBasedNeuron::n_spikes_in_last_dt() const at Base" 2.0.0
+(c++)"cnrun::C_StandaloneRateBasedNeuron::n_spikes_in_last_dt() const at Base" 2.0.0
+(c++)"cnrun::C_HostedConductanceBasedNeuron::n_spikes_in_last_dt() const at Base" 2.0.0
+(c++)"cnrun::C_HostedConductanceBasedNeuron::E(std::vector<double, std::allocator<double> >&) const at Base" 2.0.0
+(c++)"cnrun::C_HostedConductanceBasedNeuron::E() const at Base" 2.0.0
+(c++)"cnrun::C_StandaloneConductanceBasedNeuron::n_spikes_in_last_dt() const at Base" 2.0.0
+(c++)"cnrun::C_StandaloneConductanceBasedNeuron::E(std::vector<double, std::allocator<double> >&) const at Base" 2.0.0
+(c++)"cnrun::C_StandaloneConductanceBasedNeuron::E() const at Base" 2.0.0
+(c++)"cnrun::CModel::dump_state(_IO_FILE*) const at Base" 2.0.0
+(c++)"cnrun::CModel::dump_units(_IO_FILE*) const at Base" 2.0.0
+(c++)"cnrun::CModel::list_units(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const at Base" 2.0.0
+(c++)"cnrun::CModel::dump_metrics(_IO_FILE*) const at Base" 2.0.0
+(c++)"cnrun::CModel::unit_by_label(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const at Base" 2.0.0
+(c++)"cnrun::CModel::neuron_by_label(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const at Base" 2.0.0
+(c++)"cnrun::CModel::synapse_by_label(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const at Base" 2.0.0
+(c++)"cnrun::CModel::verbose_threshold() const at Base" 2.0.0
+(c++)"cnrun::stilton::C_verprintf::vp(int, _IO_FILE*, char const*, ...) const at Base" 2.0.0
+(c++)"cnrun::stilton::C_verprintf::vp(int, char const*, ...) const at Base" 2.0.0
+(c++)"std::ctype<char>::do_widen(char) const at Base" 2.0.0
+(c++)"std::_Rb_tree<int, int, std::_Identity<int>, std::less<int>, std::allocator<int> >::find(int const&) const at Base" 2.0.0
+(c++)"char* std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_S_construct<char*>(char*, char*, std::allocator<char> const&, std::forward_iterator_tag)@Base" 2.0.0
+(c++)"std::_List_base<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_clear()@Base" 2.0.0
+(c++)"std::list<cnrun::C_BaseUnit*, std::allocator<cnrun::C_BaseUnit*> >::remove(cnrun::C_BaseUnit* const&)@Base" 2.0.0
+(c++)"std::list<cnrun::C_BaseUnit*, std::allocator<cnrun::C_BaseUnit*> >::unique()@Base" 2.0.0
+(c++)"std::list<cnrun::C_BaseNeuron*, std::allocator<cnrun::C_BaseNeuron*> >::sort()@Base" 2.0.0
+(c++)"std::list<cnrun::C_BaseNeuron*, std::allocator<cnrun::C_BaseNeuron*> >::merge(std::list<cnrun::C_BaseNeuron*, std::allocator<cnrun::C_BaseNeuron*> >&&)@Base" 2.0.0
+(c++)"std::list<cnrun::C_BaseNeuron*, std::allocator<cnrun::C_BaseNeuron*> >::remove(cnrun::C_BaseNeuron* const&)@Base" 2.0.0
+(c++)"std::list<double, std::allocator<double> >::sort()@Base" 2.0.0
+(c++)"std::list<double, std::allocator<double> >::merge(std::list<double, std::allocator<double> >&&)@Base" 2.0.0
+(c++)"std::list<unsigned int, std::allocator<unsigned int> >::_M_default_append(unsigned long)@Base" 2.0.0
+(c++)"void std::vector<cnrun::C_BaseUnit*, std::allocator<cnrun::C_BaseUnit*> >::_M_emplace_back_aux<cnrun::C_BaseUnit* const&>(cnrun::C_BaseUnit* const&)@Base" 2.0.0
+(c++)"void std::vector<cnrun::C_BaseUnit*, std::allocator<cnrun::C_BaseUnit*> >::_M_emplace_back_aux<cnrun::C_BaseUnit* const&>(cnrun::C_BaseUnit* const&)@Base" 2.0.0
+(c++)"void std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::emplace_back<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)@Base" 2.0.0
+(c++)"void std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::emplace_back<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)@Base" 2.0.0
+(c++)"void std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_emplace_back_aux<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)@Base" 2.0.0
+(c++)"void std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_emplace_back_aux<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)@Base" 2.0.0
+(c++)"std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::~vector()@Base" 2.0.0
+(c++)"std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::~vector()@Base" 2.0.0
+(c++)"void std::vector<std::pair<double, double>, std::allocator<std::pair<double, double> > >::_M_emplace_back_aux<std::pair<double, double> >(std::pair<double, double>&&)@Base" 2.0.0
+(c++)"void std::vector<std::pair<double, double>, std::allocator<std::pair<double, double> > >::_M_emplace_back_aux<std::pair<double, double> >(std::pair<double, double>&&)@Base" 2.0.0
+(c++)"void std::vector<double, std::allocator<double> >::emplace_back<double>(double&&)@Base" 2.0.0
+(c++)"void std::vector<double, std::allocator<double> >::emplace_back<double>(double&&)@Base" 2.0.0
+(c++)"void std::vector<double, std::allocator<double> >::_M_emplace_back_aux<double const&>(double const&)@Base" 2.0.0
+(c++)"void std::vector<double, std::allocator<double> >::_M_emplace_back_aux<double>(double&&)@Base" 2.0.0
+(c++)"void std::vector<double, std::allocator<double> >::_M_emplace_back_aux<double const&>(double const&)@Base" 2.0.0
+(c++)"void std::vector<double, std::allocator<double> >::_M_emplace_back_aux<double>(double&&)@Base" 2.0.0
+(c++)"std::vector<double, std::allocator<double> >::operator=(std::vector<double, std::allocator<double> > const&)@Base" 2.0.0
+(c++)"void std::vector<unsigned long, std::allocator<unsigned long> >::_M_emplace_back_aux<unsigned long const&>(unsigned long const&)@Base" 2.0.0
+(c++)"void std::vector<unsigned long, std::allocator<unsigned long> >::_M_emplace_back_aux<unsigned long const&>(unsigned long const&)@Base" 2.0.0
+(c++)"std::_Rb_tree<cnrun::C_BaseSynapse*, std::pair<cnrun::C_BaseSynapse* const, double>, std::_Select1st<std::pair<cnrun::C_BaseSynapse* const, double> >, std::less<cnrun::C_BaseSynapse*>, std::allocator<std::pair<cnrun::C_BaseSynapse* const, double> > >::_M_get_insert_unique_pos(cnrun::C_BaseSynapse* const&)@Base" 2.0.0
+(c++)"std::_Rb_tree<cnrun::C_BaseSynapse*, std::pair<cnrun::C_BaseSynapse* const, double>, std::_Select1st<std::pair<cnrun::C_BaseSynapse* const, double> >, std::less<cnrun::C_BaseSynapse*>, std::allocator<std::pair<cnrun::C_BaseSynapse* const, double> > >::_M_get_insert_hint_unique_pos(std::_Rb_tree_const_iterator<std::pair<cnrun::C_BaseSynapse* const, double> >, cnrun::C_BaseSynapse* const&)@Base" 2.0.0
+(c++)"std::_Rb_tree<cnrun::C_BaseSynapse*, std::pair<cnrun::C_BaseSynapse* const, double>, std::_Select1st<std::pair<cnrun::C_BaseSynapse* const, double> >, std::less<cnrun::C_BaseSynapse*>, std::allocator<std::pair<cnrun::C_BaseSynapse* const, double> > >::erase(cnrun::C_BaseSynapse* const&)@Base" 2.0.0
+(c++)"std::_Rb_tree<cnrun::C_BaseSynapse*, std::pair<cnrun::C_BaseSynapse* const, double>, std::_Select1st<std::pair<cnrun::C_BaseSynapse* const, double> >, std::less<cnrun::C_BaseSynapse*>, std::allocator<std::pair<cnrun::C_BaseSynapse* const, double> > >::_M_erase(std::_Rb_tree_node<std::pair<cnrun::C_BaseSynapse* const, double> >*)@Base" 2.0.0
+(c++)"std::pair<std::_Rb_tree_iterator<int>, bool> std::_Rb_tree<int, int, std::_Identity<int>, std::less<int>, std::allocator<int> >::_M_insert_unique<int>(int&&)@Base" 2.0.0
+(c++)"std::_Rb_tree<int, int, std::_Identity<int>, std::less<int>, std::allocator<int> >::_M_erase(std::_Rb_tree_node<int>*)@Base" 2.0.0
+(c++)"typeinfo for cnrun::CModel::TNMLIOResult at Base" 2.0.0
+(c++)"typeinfo for std::basic_string<char, std::char_traits<char>, std::allocator<char> >@Base" 2.0.0
+(c++)"typeinfo name for cnrun::CModel::TNMLIOResult at Base" 2.0.0
+(c++)"typeinfo name for std::basic_string<char, std::char_traits<char>, std::allocator<char> >@Base" 2.0.0
+(c++)"vtable for cnrun::CNeuronMap at Base" 2.0.0
+(c++)"vtable for cnrun::C_BaseUnit at Base" 2.0.0
+(c++)"vtable for cnrun::CNeuronEC_d at Base" 2.0.0
+(c++)"vtable for cnrun::CNeuronHH_d at Base" 2.0.0
+(c++)"vtable for cnrun::CNeuronHH_r at Base" 2.0.0
+(c++)"vtable for cnrun::CSourceTape at Base" 2.0.0
+(c++)"vtable for cnrun::CSynapseMap at Base" 2.0.0
+(c++)"vtable for cnrun::CNeuronECA_d at Base" 2.0.0
+(c++)"vtable for cnrun::CNeuronHH2_d at Base" 2.0.0
+(c++)"vtable for cnrun::CSourceNoise at Base" 2.0.0
+(c++)"vtable for cnrun::C_BaseNeuron at Base" 2.0.0
+(c++)"vtable for cnrun::C_BaseSource at Base" 2.0.0
+(c++)"vtable for cnrun::CSynapseAB_dd at Base" 2.0.0
+(c++)"vtable for cnrun::CSynapseAB_rr at Base" 2.0.0
+(c++)"vtable for cnrun::CSynapseMxMap at Base" 2.0.0
+(c++)"vtable for cnrun::C_BaseSynapse at Base" 2.0.0
+(c++)"vtable for cnrun::CIntegrateRK65 at Base" 2.0.0
+(c++)"vtable for cnrun::C_HostedNeuron at Base" 2.0.0
+(c++)"vtable for cnrun::CIntegrate_base at Base" 2.0.0
+(c++)"vtable for cnrun::CNeuronDotPulse at Base" 2.0.0
+(c++)"vtable for cnrun::CSourceFunction at Base" 2.0.0
+(c++)"vtable for cnrun::CSourcePeriodic at Base" 2.0.0
+(c++)"vtable for cnrun::CSynapseMxAB_dd at Base" 2.0.0
+(c++)"vtable for cnrun::CSynapseMxAB_dr at Base" 2.0.0
+(c++)"vtable for cnrun::CSynapseRall_dd at Base" 2.0.0
+(c++)"vtable for cnrun::C_HostedSynapse at Base" 2.0.0
+(c++)"vtable for cnrun::COscillatorVdPol at Base" 2.0.0
+(c++)"vtable for cnrun::COscillatorPoisson at Base" 2.0.0
+(c++)"vtable for cnrun::CSynapseABMinus_dd at Base" 2.0.0
+(c++)"vtable for cnrun::C_HostedAttributes at Base" 2.0.0
+(c++)"vtable for cnrun::C_StandaloneNeuron at Base" 2.0.0
+(c++)"vtable for cnrun::COscillatorColpitts at Base" 2.0.0
+(c++)"vtable for cnrun::C_StandaloneSynapse at Base" 2.0.0
+(c++)"vtable for cnrun::COscillatorDotPoisson at Base" 2.0.0
+(c++)"vtable for cnrun::C_StandaloneAttributes at Base" 2.0.0
+(c++)"vtable for cnrun::C_HostedRateBasedNeuron at Base" 2.0.0
+(c++)"vtable for cnrun::C_MultiplexingAttributes at Base" 2.0.0
+(c++)"vtable for cnrun::C_StandaloneRateBasedNeuron at Base" 2.0.0
+(c++)"vtable for cnrun::C_HostedConductanceBasedNeuron at Base" 2.0.0
+(c++)"vtable for cnrun::C_StandaloneConductanceBasedNeuron at Base" 2.0.0
+(c++)"vtable for cnrun::CModel at Base" 2.0.0
+(c++)"vtable for cnrun::stilton::C_verprintf at Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::CSynapseMap::preadvance()@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::CSynapseAB_dd::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::CSynapseAB_rr::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::CSynapseMxMap::preadvance()@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::CSynapseMxAB_dd::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::CSynapseRall_dd::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::C_HostedSynapse::reset_vars()@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::C_HostedSynapse::var_value(unsigned long)@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::CSynapseABMinus_dd::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::CSynapseMxAB_dd::update_queue()@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::CNeuronMap::preadvance()@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::CNeuronEC_d::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::CNeuronHH_d::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::CNeuronHH_r::preadvance()@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::CNeuronECA_d::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::CNeuronHH2_d::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::CSynapseMxMap::update_queue()@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::C_HostedNeuron::reset_vars()@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::C_HostedNeuron::var_value(unsigned long)@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::COscillatorVdPol::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::COscillatorColpitts::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
diff --git a/debian/lua-cnrun.info b/debian/lua-cnrun.info
new file mode 100644
index 0000000..c137dc8
--- /dev/null
+++ b/debian/lua-cnrun.info
@@ -0,0 +1 @@
+doc/lua-api/cnrun-lua-api.info
diff --git a/debian/lua-cnrun.install b/debian/lua-cnrun.install
new file mode 100644
index 0000000..05e6ced
--- /dev/null
+++ b/debian/lua-cnrun.install
@@ -0,0 +1,2 @@
+usr/lib/lua/*/cnrun.so
+usr/share/doc/lua-cnrun/examples/example1.lua
diff --git a/debian/lua-cnrun.lintian-overrides b/debian/lua-cnrun.lintian-overrides
new file mode 100644
index 0000000..26d170c
--- /dev/null
+++ b/debian/lua-cnrun.lintian-overrides
@@ -0,0 +1,3 @@
+# lua-cnrun produces a .so library that we move (in install hook)
+# directly to /usr/lib/lua/5.x/cnrun.so, where it only belongs
+lua-cnrun binary: missing-dependency-on-libc
diff --git a/debian/rules b/debian/rules
index 649cc66..95f91ee 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,17 +1,37 @@
 #!/usr/bin/make -f
 # -*- makefile -*-
-# Sample debian/rules that uses debhelper.
-# This file was originally written by Joey Hess and Craig Small.
-# As a special exception, when this file is copied by dh-make into a
-# dh-make output file, you may use that output file without restriction.
-# This special exception was added by Craig Small in version 0.37 of dh-make.
 
 DPKG_EXPORT_BUILDFLAGS = 1
 include /usr/share/dpkg/buildflags.mk
+DEB_BUILD_OPTIONS = parallel=4
 
 %:
-	dh $@ --with autoreconf
+	dh $@ --with autoreconf --parallel
+#	dh $@ -plua-cnrun --buildsystem=lua --with lua
+
+# Perhaps I didn't try hard enough, but there was a conflict between
+# upstream's own, independent way to install Lua module as
+# /usr/lib/lua/5.x/cnrun.so, and Debian's recommended, using
+# dh-lua.conf.  I stuck with the former, simply because upstream has
+# the full right to handle lua module himself.  Just let debian
+# maintainers pick up ready-made lua/cnrun.so already installed where
+# it belongs.
+#
+# And, not to mention the need to write %.lo: target in top Makefile.am.
 
 override_dh_clean:
 	rm -f config.log
 	dh_clean
+
+override_dh_shlibdeps:
+	dh_shlibdeps -L libcnrun2-dev
+
+# Here, we want dependencies to be scanned including a package not yet
+# installed, which I believe gets fixed by making an explicit mention
+# of libcnrun2-dev here.
+
+override_dh_makeshlibs:
+	dh_makeshlibs -plibcnrun2 -V -- -t -c1 -q -v2.0.0
+
+# This is nasty; not sure supplying symbols in demangled form is of
+# any help; but -q and -c1 obviously is.
diff --git a/debian/unwanted-files b/debian/unwanted-files
index fe1cddd..8ddf06f 100644
--- a/debian/unwanted-files
+++ b/debian/unwanted-files
@@ -13,3 +13,11 @@ Makefile.in
 src/Makefile.in
 src/*/Makefile.in
 doc/Makefile.in
+doc/lua-api/mdate-sh
+doc/lua-api/texinfo.tex
+doc/lua-api/Makefile.in
+doc/lua-api/mdate-sh
+doc/lua-api/texinfo.tex
+doc/lua-api/stamp-vti
+doc/lua-api/version.texi
+doc/lua-api/cnrun-lua-api.info
diff --git a/upstream/ChangeLog b/upstream/ChangeLog
index 801e7e9..33c67cf 100644
--- a/upstream/ChangeLog
+++ b/upstream/ChangeLog
@@ -1,5 +1,5 @@
-2014-10-26  andrei zavada  <johnhommer at gmail.com>
-	* cnrun executable gone, replaced by a Lua module.
+2014-11-01  andrei zavada  <johnhommer at gmail.com>
+	* cnrun executable gone, replaced by a Lua module (cnrun.so).
 	* Sweeping refactoring effort, incomplete in places, towards
 	  higher coding standards and discipline.
 	* Drop varfold (too specific to the ratiocoding experiment setup).
diff --git a/upstream/INSTALL b/upstream/INSTALL
index b223b14..239e074 100644
--- a/upstream/INSTALL
+++ b/upstream/INSTALL
@@ -7,10 +7,12 @@ With the --enable-tools option, configure will build a couple of
 standalone tools, spike2sdf and hh-latency-estimator, which some may
 find useful.
 
-In order to use the Lua package, you can e.g. symlink
-/usr/lib/cnrun/libcnrun-lua.so to /usr/lib/lua/$LUA_VERSION/cnrun.so.
-You should then be able to write 'require("cnrun")'; for further
-instructions by example, see doc/cnrun/examples/example1.lua.
+In order to use the Lua package, if you installed CNrun into a prefix
+other than /, you need to make sure LUA_CPATH contains the location of
+cnrun.so (e.g. export LUA_CPATH="/path/to/cnrun/?.so;$LUA_CPATH").  You
+should then be able to write 'require("cnrun")'.
+
+For further instructions, see doc/cnrun/examples/example1.lua.
 
 For the standard GNU autotools install instructions, please consult
 the original INSTALL file (commonly /usr/share/autoconf/INSTALL).
diff --git a/upstream/Makefile.am b/upstream/Makefile.am
index c9fb9c9..98fd85d 100644
--- a/upstream/Makefile.am
+++ b/upstream/Makefile.am
@@ -1,13 +1,18 @@
 ACLOCAL_AMFLAGS = -I m4
+include src/Common.mk
 
 SUBDIRS := src doc
 
 EXTRA_DIST = \
 	ChangeLog \
-	autogen.sh
+	autogen.sh \
+	libcnrun.pc.in
 
 if DO_TOOLS
 man_MANS = \
 	man/spike2sdf.1 \
 	man/hh-latency-estimator.1
 endif
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = libcnrun.pc
diff --git a/upstream/configure.ac b/upstream/configure.ac
index 98a6a7a..60a80cc 100644
--- a/upstream/configure.ac
+++ b/upstream/configure.ac
@@ -78,11 +78,13 @@ fi
 
 AC_OUTPUT([
 	Makefile
+        libcnrun.pc
 	src/Makefile
 	src/libstilton/Makefile
 	src/libcnrun/Makefile
-	src/libcnrun-lua/Makefile
+	src/lua-cnrun/Makefile
 	doc/Makefile
+	doc/lua-api/Makefile
 	man/spike2sdf.1
 	man/hh-latency-estimator.1
 	src/tools/Makefile])
diff --git a/upstream/doc/Makefile.am b/upstream/doc/Makefile.am
index 5f080fa..d4ef37c 100644
--- a/upstream/doc/Makefile.am
+++ b/upstream/doc/Makefile.am
@@ -1,10 +1,15 @@
+SUBDIRS = lua-api
+
 doc_DATA = \
 	README
 
+# override, else we will stomp over cnrun docdir from a 1.x
+# installation, which can and must exist in parallel
+docdir=${datarootdir}/doc/lua-cnrun
+
 examples_DATA = \
 	examples/example1.lua \
-	examples/ratiocoding/ORNa.in \
-	examples/ratiocoding/m.nml
+	examples/m.nml
 
 examplesdir = $(docdir)/examples
 
diff --git a/upstream/doc/examples/example1.lua b/upstream/doc/examples/example1.lua
index 258ddeb..2feca9f 100644
--- a/upstream/doc/examples/example1.lua
+++ b/upstream/doc/examples/example1.lua
@@ -1,11 +1,31 @@
--- with lu-5.2, replace do s/table.unpack/unpack/g.
+-- This is an example illustrating how to use cnrun package in Lua.
+--
+-- 1. After loading the cnrun module with 'require', the first step is
+--    to get or create an interpreter context.  It is an opaque light
+--    user data object, which you will pass as the first argument to
+--    all subsequent calls to cnrun functions.
+--
+-- 2. You can create and keep multiple models in a context, modify and
+--    advance them independently. Models are identified by a label (a
+--    string).
+--
+-- 3. On error, all cnrun methods return two values: first a nil,
+--    second a string describing what went wrong.  On success, the
+--    first value is 1 (an integer), and the rest are method-specific.
+--
+-- 4. Don't lose the context object.  It will not be gabage-collected
+--    for you (it is a C++ thing).
+
+-- To execute this script with lua-5.1, do s/table.unpack/unpack/g.
 
 local M = require("cnrun")
 
 local res, ult, result
 local C, model
 
-res, ult = M.cn_get_context ()
+M.dump_available_units ()
+
+res, ult = M.get_context ()
 if res == nil then
    print (ult)
    return
@@ -13,7 +33,7 @@ end
 C = ult
 
 local mname = "FAFA"
-res, ult = M.cn_new_model (C, mname)
+res, ult = M.new_model (C, mname)
 if res == nil then
    print (ult)
    return
@@ -22,9 +42,9 @@ model = ult
 print ("Created model")
 
 print ("Setting verbosely to 4")
-M.cn_set_model_parameter (C, mname, "verbosely", 4)
+M.set_model_parameter (C, mname, "verbosely", 4)
 
-result = {M.cn_list_models (C)}
+result = {M.list_models (C)}
 res, ult = result[1], {table.unpack(result, 2)}
 if res == nil then
    print (ult)
@@ -38,7 +58,7 @@ print (table.concat(model_list))
 print ()
 
 
-res, ult = M.cn_import_nml (C, mname, "ratiocoding/m.nml")
+res, ult = M.import_nml (C, mname, "m.nml")
 if res == nil then
    print (ult)
    -- return
@@ -55,19 +75,19 @@ local parameters = {
 }
 local fmt = " %22s: %-q"
 for i,p in ipairs(parameters) do
-   res, ult = M.cn_get_model_parameter (C, mname, p)
+   res, ult = M.get_model_parameter (C, mname, p)
    print (string.format (fmt, p, ult))
 end
 print ()
 
-res, ult = M.cn_delete_model (C, "fafa moo")
+res, ult = M.delete_model (C, "fafa moo")
 if res == nil then
    print (ult .. " (ignored)")
    -- return
 end
 
 
-result = {M.cn_get_units_matching(C, mname, "L.*")}
+result = {M.get_units_matching(C, mname, "L.*")}
 res, ult = result[1], {table.unpack(result, 2)}
 if res == nil then
    print (ult)
@@ -82,7 +102,7 @@ print (string.format(
           "label", "class", "family", "species", "has_sources", "is_altered"))
 print (string.rep('-', 87))
 for _, u in ipairs(unit_list) do
-   result = {M.cn_get_unit_properties (C, mname, u)}
+   result = {M.get_unit_properties (C, mname, u)}
    res, ult = result[1], {table.unpack(result, 2)}
    local b = function (x) if x then return "yes" else return "no" end end
    print (string.format(
@@ -93,36 +113,48 @@ print()
 
 
 print ("Advancing 10 sec:")
-res, ult = M.cn_advance (C, mname, 10000)
+res, ult = M.advance (C, mname, 10000)
 
 
 print ("Modify parameter:")
 local u, p, v0, v9, vr = "LNz.0", "gNa"
-_, ult = M.cn_get_unit_parameter (C, mname, u, p)
+_, ult = M.get_unit_parameter (C, mname, u, p)
 v0 = ult
-_, ult = M.cn_set_unit_parameter (C, mname, u, p, v0 * 2)
-_, ult = M.cn_get_unit_parameter (C, mname, u, p)
+_, ult = M.set_unit_parameter (C, mname, u, p, v0 * 2)
+_, ult = M.get_unit_parameter (C, mname, u, p)
 v9 = ult
 -- with a revert
-res, ult = M.cn_revert_matching_unit_parameters (C, mname, u)
+res, ult = M.revert_matching_unit_parameters (C, mname, u)
 if res == nil then
    print (ult)
    return
 end
 local count_reset = ult
-_, ult = M.cn_get_unit_parameter (C, mname, u, p)
+_, ult = M.get_unit_parameter (C, mname, u, p)
 vr = ult
 print (string.format(
           ".. changed %s of %s from %g to %g, then reset (%d affected) to %g\n",
           p, u, v0, v9, count_reset, vr))
 
-res, ult = M.cn_describe_model (C, mname)
+
+print ("Modify parameter in bulk:")
+local us, ut, gsyn = "LNz.0", "LN1.0"
+_, ult = M.set_matching_synapse_parameter (C, mname, us, ut, "gsyn", 4.2)
+if res == nil then
+   print (ult)
+   return
+end
+print (string.format(
+          ".. changed gsyn of synapse connecting %s to %s, to %g\n",
+          us, ut, 4.2))
+
+res, ult = M.describe_model (C, mname)
 
 
 print ("State variables:")
 for i = 1, 6, 1 do
-   M.cn_advance (C, mname, 1000)
-   result = {M.cn_get_unit_vars (C, mname, "LNz.0")}
+   M.advance (C, mname, 1000)
+   result = {M.get_unit_vars (C, mname, "LNz.0")}
    res, ult = result[1], {table.unpack(result, 2)}
    print (table.concat(ult, '; '))
 end
@@ -135,7 +167,7 @@ print ("Putout:")
 math.randomseed(os.time())
 local deleting = unit_list[math.random(1, #unit_list)]
 -- deleting, _ = string.gsub(deleting, ".", "\\.")
-res, ult = M.cn_putout (C, mname, deleting)
+res, ult = M.putout (C, mname, deleting)
 if res == nil then
    print (ult)
    return
@@ -144,27 +176,27 @@ print (string.format(".. deleted unit %s", deleting))
 print()
 
 print ("Decimate:")
-res, ult = M.cn_decimate (C, mname, "L.*", 0.3)
+res, ult = M.decimate (C, mname, "L.*", 0.3)
 if res == nil then
    print (nil)
    return
 end
 affected, remaining = ult
-remaining = #{M.cn_get_units_matching (C, mname, ".*")} - 1
+remaining = #{M.get_units_matching (C, mname, ".*")} - 1
 print (string.format(
           ".. %d units gone, %d remaining",
           affected, remaining))
 print()
 
 
-res, ult = M.cn_delete_model (C, mname)
+res, ult = M.delete_model (C, mname)
 if res == nil then
    print ("Error: Failed to delete model: ", ult)
    return
 end
 print ("Model ".. ult .. " deleted")
 
-res, ult = M.cn_drop_context (C)
+res, ult = M.drop_context (C)
 if res == nil then
    print ("Error: Failed to drop context: ", ult)
    return
diff --git a/upstream/doc/examples/ratiocoding/m.nml b/upstream/doc/examples/m.nml
similarity index 100%
rename from upstream/doc/examples/ratiocoding/m.nml
rename to upstream/doc/examples/m.nml
diff --git a/upstream/doc/examples/ratiocoding/ORNa.in b/upstream/doc/examples/ratiocoding/ORNa.in
deleted file mode 100644
index b70eeaa..0000000
--- a/upstream/doc/examples/ratiocoding/ORNa.in
+++ /dev/null
@@ -1,112 +0,0 @@
-125
-0 
-0 0  10 10
-0 0  10 10
-0 0  10 10
-0 0  10 10
-0 0  10 10
-0 0  10 10
-0 0  10 10
-0 0  10 10
-0 0  10 10
-0 0  10 10
-
-0 0  13 13
-0 0  13 13
-0 0  13 13
-0 0  13 13
-0 0  13 13
-0 0  13 13
-0 0  13 13
-0 0  13 13
-0 0  13 13
-0 0  13 13
-
-0 0  16.9 16.9
-0 0  16.9 16.9
-0 0  16.9 16.9
-0 0  16.9 16.9
-0 0  16.9 16.9
-0 0  16.9 16.9
-0 0  16.9 16.9
-0 0  16.9 16.9
-0 0  16.9 16.9
-0 0  16.9 16.9
-
-0 0  21.97 21.97
-0 0  21.97 21.97
-0 0  21.97 21.97
-0 0  21.97 21.97
-0 0  21.97 21.97
-0 0  21.97 21.97
-0 0  21.97 21.97
-0 0  21.97 21.97
-0 0  21.97 21.97
-0 0  21.97 21.97
-
-0 0  28.561 28.561
-0 0  28.561 28.561
-0 0  28.561 28.561
-0 0  28.561 28.561
-0 0  28.561 28.561
-0 0  28.561 28.561
-0 0  28.561 28.561
-0 0  28.561 28.561
-0 0  28.561 28.561
-0 0  28.561 28.561
-
-0 0  37.1293 37.1293
-0 0  37.1293 37.1293
-0 0  37.1293 37.1293
-0 0  37.1293 37.1293
-0 0  37.1293 37.1293
-0 0  37.1293 37.1293
-0 0  37.1293 37.1293
-0 0  37.1293 37.1293
-0 0  37.1293 37.1293
-0 0  37.1293 37.1293
-
-0 0  48.2681 48.2681
-0 0  48.2681 48.2681
-0 0  48.2681 48.2681
-0 0  48.2681 48.2681
-0 0  48.2681 48.2681
-0 0  48.2681 48.2681
-0 0  48.2681 48.2681
-0 0  48.2681 48.2681
-0 0  48.2681 48.2681
-0 0  48.2681 48.2681
-
-0 0  62.7485 62.7485
-0 0  62.7485 62.7485
-0 0  62.7485 62.7485
-0 0  62.7485 62.7485
-0 0  62.7485 62.7485
-0 0  62.7485 62.7485
-0 0  62.7485 62.7485
-0 0  62.7485 62.7485
-0 0  62.7485 62.7485
-0 0  62.7485 62.7485
-
-0 0  81.5731 81.5731
-0 0  81.5731 81.5731
-0 0  81.5731 81.5731
-0 0  81.5731 81.5731
-0 0  81.5731 81.5731
-0 0  81.5731 81.5731
-0 0  81.5731 81.5731
-0 0  81.5731 81.5731
-0 0  81.5731 81.5731
-0 0  81.5731 81.5731
-
-0 0  106.045 106.045
-0 0  106.045 106.045
-0 0  106.045 106.045
-0 0  106.045 106.045
-0 0  106.045 106.045
-0 0  106.045 106.045
-0 0  106.045 106.045
-0 0  106.045 106.045
-0 0  106.045 106.045
-0 0  106.045 106.045
-
diff --git a/upstream/doc/lua-api/.gitignore b/upstream/doc/lua-api/.gitignore
new file mode 100644
index 0000000..fa63357
--- /dev/null
+++ b/upstream/doc/lua-api/.gitignore
@@ -0,0 +1,6 @@
+cnrun-lua-api.info
+cnrun-lua-api.html/
+mdate-sh
+stamp-vti
+texinfo.tex
+version.texi
diff --git a/upstream/doc/lua-api/Makefile.am b/upstream/doc/lua-api/Makefile.am
new file mode 100644
index 0000000..0fbb8a5
--- /dev/null
+++ b/upstream/doc/lua-api/Makefile.am
@@ -0,0 +1,4 @@
+info_TEXINFOS = \
+	cnrun-lua-api.texi
+
+all-local: html info
diff --git a/upstream/doc/lua-api/cnrun-lua-api.texi b/upstream/doc/lua-api/cnrun-lua-api.texi
new file mode 100644
index 0000000..6e76736
--- /dev/null
+++ b/upstream/doc/lua-api/cnrun-lua-api.texi
@@ -0,0 +1,533 @@
+\input texinfo @c -*-texinfo-*-
+ at c %**start of header
+ at setfilename cnrun-lua-api.info
+ at settitle CNrun Lua API
+ at c %**end of header
+
+ at include version.texi
+
+ at dircategory Libraries
+ at direntry
+* CNrun Lua API: (cnrun-lua).        CNrun API in Lua.
+ at end direntry
+
+ at copying
+
+Copyright @copyright{} 2014 Andrei Zavada @email{johnhommer@@gmail.com}.
+
+The files representing this documentation set are part of CNrun project,
+and covered by GPL-2+.
+ at end copying
+
+ at titlepage
+ at title CNrun Lua API
+ at subtitle version @value{VERSION}
+ at subtitle @value{UPDATED}
+ at author Andrei Zavada
+
+ at page
+ at vskip 0pt plus 1filll
+ at insertcopying
+ at end titlepage
+
+ at contents
+
+ at ifnottex
+ at node Top
+ at top CNrun Lua API
+ at comment  node-name,  next,  previous,  up
+ at insertcopying
+
+This file documents the CNrun functions exposed in Lua.
+ at end ifnottex
+
+ at c The master menu, created with texinfo-master-menu, goes here.
+
+ at menu
+* Introduction::  CNrun is a neuronal network model simulator, with
+  scripting done in Lua.
+* General notes::  Loading cnrun module in Lua; how errors are reported.
+* Interpreter context::  CNrun interpreter context needs to be created
+  first.
+* Models::  Operations on neuronal network models: create, populate,
+  simulate, etc.
+* Individual units::  View/modify individual units' parameters and
+  state variables.
+* External excitation sources::  External excitation sources.
+* Sampling state variables::  Ways to assess model state and behaviour.
+* Unit species::  A table of all available built-in units.
+* Planned features::  There are some, although only time permitting.
+* Index::  All functions listed alphabetically.
+ at end menu
+
+ at node Introduction
+ at chapter Introduction
+
+CNrun is a slow but precise neuronal network model simulator written in
+C++, for which functions are exposed in the Lua scripting language.
+These functions are described in this document.
+
+In the present version (2.x), CNrun core is made into a shared library,
+in contrast to CNrun 1.x which had it as a single executable
+interpreting its own, very simple scripts.  In order to enable a more
+competent scripting, with interesting possibilities such as network
+plastic processes regulated by some model activity (excitation levels,
+spike patterns, etc), wrappers are provided to call core functions from
+Lua.
+
+In the simplest case where you have a NeuroML-defined topology, a
+simulation session could be as brief as this:
+
+ at example
+local M = require("cnrun")
+_, C = M.get_context()
+_, M = M.new_model (C, "fafa")
+M.import_nml (C, "fafa", "model.nml")
+M.advance (C, "fafa", 1000)
+ at end example
+
+ at noindent
+This snippet will create an interpreter context, create a model in it,
+load an NML file, and advance the model one second.
+
+To report a bug or request a wishlist item, go to @url{http://github.com/hmmr/cnrun}.
+
+ at node General notes
+ at chapter General notes
+
+ at section Preparations
+ All functions are made available in @code{cnrun} module namespace, by
+ means of standard @code{require}.  Thus, @code{local N = require("cnrun"); M.some_function(args)}.
+
+ at section Returned arguments
+ On error, all functions return two arguments: first a @code{nil},
+ and second, an error message describing what went wrong (a string).
+
+ On success, the first returned argument will be 1 (integer), followed
+ by one or more values specifically described in the following sections.
+ Unless stated otherwise, functions which have nothing meaningful to
+ return, on success return @code{1, model_name}.
+
+ at node Interpreter context
+ at chapter Interpreter context
+
+In Lua, after loading the cnrun module with @code{require("cnrun")},
+the first step is to get an interpreter context.  It is an opaque light
+user data object, which you should pass as the first argument to all
+subsequent calls to CNrun functions.
+
+You can create and keep multiple models in a context, modify and advance
+them independently.
+
+The function to create a CNrun context is @code{get_context()}:
+
+ at defun get_context ()
+  Create a CNrun interpreter context, in which all subsequent operations
+  will be performed.
+
+  On success, returns the newly created context object @var{C} as the
+  second argument.
+ at end defun
+
+ at defun drop_context (C)
+  Drop the interpreter context @var{C}, previously obtained with
+  @emph{get_context()}.
+ at end defun
+
+In the following sections, context is passed as the first (or only)
+argument to all functions.  It is denoted as @var{C} and not described
+each time.
+
+ at node Models
+ at chapter Models
+
+Multiple models can be created, accessed, modified, advanced within a
+single interpreter context.  Models are identified by a label (a string).
+
+ at section Creating and deleting models
+
+ at defun new_model (C, M)
+  Create a model named @var{M} (model label).
+ at end defun
+
+ at defun delete_model (C, M)
+  Delete model @var{M}.
+ at end defun
+
+ at defun list_models (C)
+  List models existing in context @var{C}, returned as strings.
+ at end defun
+
+ at section Populating models
+
+Models can be populated by constituent neurons and synapses in two ways:
+ at enumerate
+ at item importing topology from a file (@code{import_nml()});
+ at item adding individual units one by one (@code{new_neuron()}, @code{new_synapse()}).
+ at end enumerate
+
+ at defun import_nml (C, M, file_name)
+  Import network topology from a file (@var{file_name}) into a model
+  named @var{M}.
+ at end defun
+
+ at defun export_nml (C, M, file_name)
+  Export network topology of model @var{M} into file @var{file_name}.
+ at end defun
+
+ at defun new_neuron (C, M, type, label)
+  Create a neuron of type @var{type}, with this @var{label}, in model
+  @var{M}.
+ at end defun
+
+ at defun new_synapse (C, M, type, source, target)
+  Create a synapse of this @var{type} connecting neurons labelled
+  @var{source} and @var{target}.
+ at end defun
+
+ at section Other operations on models as a whole
+
+ at defun reset_model (C, M)
+  Reset the state of all units, rewind all periodic sources and flush
+  and close any logs in model @var{M}.
+ at end defun
+
+ at defun cull_deaf_synapses (C, M)
+  Remove all synapses with a zero @var{gsyn}, in model @var{M}.  This
+  makes sense unless you are going to modify @var{gsyn} at a later time.
+ at end defun
+
+ at defun describe_model (C, M)
+  Describe model @var{M}.  The output will be printed to stdout and look
+  like this:
+ at verbatim
+Model "FAFA":
+     13 units total (7 Neurons, 6 Synapses):
+       11 hosted,
+        2 standalone
+        0 discrete dt-bound
+      0 Listening units
+      0 Spikelogging neurons
+      0 Units being tuned continuously
+      0 Units being tuned periodically
+      2 Spontaneously firing neurons
+      2 Multiplexing synapses
+     26 vars on integration vector
+ at end verbatim
+ at end defun
+
+ at defun advance (C, M, duration)
+  Run simulation in model @var{M} for @var{duration} milliseconds.
+ at end defun
+
+ at defun advance_until (C, M, time)
+  Run simulation in model @var{M} until point in time @var{time}.
+
+  Note that the real eventual model time after this function has
+  returned may be a little (less than the last @var{dt}) greater than
+  expected.
+ at end defun
+
+
+ at section Model parameters
+
+Each model has the following parameters that affect its behaviour:
+
+ at table @emph
+ at item verbosely
+Level of verbosity of printed messages (integer, 0 up to 6).
+
+ at item integration_dt_min
+Lower bound for @var{dt} (float).
+
+ at item integration_dt_max
+Upper bound for @var{dt} (float).
+
+ at item integration_dt_cap
+Maximal factor by which @var{dt} can be allowed to increase in
+consecutive iterations (float).
+
+ at item listen_dt
+A time increment between consecutive sampling and logging of state
+variables (float).
+
+ at item listen_mode
+A string of symbols defining unit `listening' mode, of the form
+ at emph{x}@{@emph{-}@}, where @emph{x} indicates the mode and @emph{-},
+whether to disable that mode (if given, else enable).  There are three
+modes: @var{1}, whether to log the first state variable only, or all
+unit vars; @var{d}, whether to defer writing until end of simulation;
+and @var{b}, whether to write FP values in native machine representation
+instead of @code{"%g"}.
+
+ at item sxf_start_delay
+Length of time, before and after sampling point, limiting the extent of
+counting spikes for sdf/sxf evaluation (float).  Leave at 0 to count
+all spikes from 0 until current model time; a couple of seconds should
+be good for reasonable accuracy.
+
+ at item sxf_period
+Sampling period for sdf and shf (spike density and spike heterogeneity)
+functions.
+
+ at item sdf_sigma
+Parameter @var{sigma} in sdf (float).
+ at end table
+
+ at defun get_model_parameter (C, M, P)
+  Get a model parameter @var{P}, one of those listed above.
+ at end defun
+
+ at defun set_model_parameter (C, M, P, V)
+  Set a model parameter @var{P} to value @var{V}.
+ at end defun
+
+
+ at node Individual units
+ at chapter Individulal unit identification, properties and parameters
+
+Units populating a model are uniquely identified by their label, set at
+creation time.  Where a single unit needs to be selected for a function,
+the corresponding argument to that function is designated @var{L}.  Or,
+if an operation is supposed to affect many units, selected by a regex
+pattern on their labels, that argument is designated @var{R}.
+
+Apart from the (arbitrary) label, units are classified as belonging to
+either Neuron or Synapse class, further belonging to a certain family
+and species.  These categories are built-in, each species defining a
+set of parameters and state variables.
+
+All available unit species are listed in @ref{Unit species}.
+
+ at defun get_unit_properties (C, M, L)
+  Return the following attributes and properties of unit @var{L}, in
+  order: @emph{label}, @emph{class_name}, @emph{family}, @emph{species},
+  as strings, followed by flags @emph{has_sources} and
+  @emph{is_not_altered}.
+ at end defun
+
+ at defun get_unit_parameter (C, M, L, P)
+  Get the value of unit @var{L}'s parameter @var{P}.
+ at end defun
+
+ at defun set_unit_parameter (C, M, L, P, V)
+  Set unit @var{L}'s parameter @var{P} to a value of @var{V}.
+ at end defun
+
+ at defun get_unit_vars (C, M, L)
+  Get the values of all state variables of unit @var{L}, returned as
+  floats in the order they are listed in @ref{Unit species} table.
+ at end defun
+
+ at defun reset_unit (C, M, L)
+  Reset all state variables of unit @var{L}.
+ at end defun
+
+ at defun get_units_matching (C, M, R)
+  Return all units with labels matching regex @var{R}.
+ at end defun
+
+ at defun get_units_of_type (C, M, sp)
+  Return all units of a species @var{sp}.
+ at end defun
+
+ at defun set_matching_neuron_parameter (C, M, R, P, V)
+  Set the value of parameter @var{P} to @var{V} in all neurons labelled
+  matching regex @var{R}.
+ at end defun
+
+ at defun set_matching_synapse_parameter (C, M, Rs, Rt, P, V)
+  Set the value of parameter @var{P} to @var{V} in all synapses
+  connecting, resp., any neurons labelled matching regexes @var{Rs} and
+  @var{Rt}.
+ at end defun
+
+ at defun revert_matching_unit_parameters (C, M, R)
+  Revert to defaults all parameters of units labelled matching regex
+  @var{R}.
+ at end defun
+
+ at defun decimate (C, M, R, frac)
+  Delete a random @var{frac} of all units matching regex @var{R}.
+ at end defun
+
+ at defun putout (C, M, R)
+  Delete all units matching regex @var{R}.
+ at end defun
+
+
+ at node External excitation sources
+ at chapter External excitation sources
+
+CNrun provides for three types of external stimulation sources:
+
+ at itemize @bullet
+ at item @emph{Tape},
+ with all possible values defined in sequence, with timestamps, in a
+ file, optionally looping.
+ at item @emph{Periodic},
+ with a sequence of values defined to occur at regular intervals within
+ a specified period.
+ at item @emph{Noise},
+ a continuous sampling from a uniform or gaussian distribution.
+ at end itemize
+
+ at defun new_tape_source (C, M, source_name, file_name, looping)
+  Set up a new tape source named @var{source_name}, from data in file
+  @var{file_name}.
+ at end defun
+
+ at defun new_periodic_source (C, M, source_name, file_name, looping, period)
+  Set up a new periodic source named @var{source_name}, from data in file
+  @var{file_name}, optionally @var{looping} over a @var{period} (stuck
+  at the last value, if not).
+ at end defun
+
+ at defun new_noise_source (C, M, source_name, min, max, sigma, distribution)
+  Set up a new noise source named @var{source_name}, of a given
+  @var{distribution} (possible values are @emph{"uniform"} and
+  @emph{"gaussian"}), with given @var{min}, @var{max}, and (for the
+  gaussian) @var{sigma}.
+ at end defun
+
+ at defun get_sources (C, M)
+  Get all sources created in the model, returning labels as strings.
+ at end defun
+
+ at defun connect_source (C, M, L, P, source_name)
+  Connect source @var{source_name} to parameter @var{P} of unit @var{L}.
+ at end defun
+
+ at defun disconnect_source (C, M, L, P, source_name)
+  Disconnect a previously connected source @var{source_name} from
+  parameter @var{P} of unit @var{L}.
+ at end defun
+
+
+ at node Sampling state variables
+ at chapter Sampling state variables
+
+In addition to direct access to unit state variables in Lua (see
+ at code{get_unit_parameter()}), there are two ways to record unit state
+for offline assessment:
+
+ at itemize @bullet
+
+ at item Have units write their state variable(s) to logs (created in the
+current directory with unit labels with a suffix ``.vars'' as names);
+
+ at item Have neurons record the times of spikes (written to files
+similarly named except with suffix ``.spikes'').
+
+ at end itemize
+
+ at defun start_listen (C, M, R)
+  Enable logging of state variables (with options as defined in model
+  parameter @var{listen_mode} @ref{Models}) in all units
+  labelled matching regex @var{R}.  Return the count of units affected.
+ at end defun
+
+ at defun stop_listen (C, M, R)
+  Disable logging of state variables in all units labelled matching
+  regex @var{R}.  Units writing logs will flush and close.  Return
+  the count of units affected.
+ at end defun
+
+ at defun start_log_spikes (C, M, R)
+  Enable logging of spike times in all neurons labelled matching regex
+  @var{R}.  Return the count of units affected.
+ at end defun
+
+ at defun stop_log_spikes (C, M, R)
+  Disable logging spikes in all units labelled matching regex @var{R}.
+  Return the count of units affected.
+ at end defun
+
+
+ at node Unit species
+ at chapter Unit species
+
+Given below are some unit species available for your models.  For a
+complete list, with parameter standard values and descriptions, see the
+output of @code{dump_available_units()}.
+
+ at section Neuron species
+ at multitable @columnfractions .1 .25 .15 .5
+ at headitem Species @tab Parameters @tab State vars @tab Description
+
+ at item HH
+ at tab gNa, ENa, gK, EK, gl, El, Cmem, Idc
+ at tab E
+ at tab A classical, conductance-based Hodgkin-Huxley neuron
+
+ at item HHRate
+ at tab a, I0, r, Idc
+ at tab F
+ at tab  Rate-based model of the Hodgkin-Huxley neuron
+
+ at item DotPoisson
+ at tab lambda, Vrst, Vfir
+ at tab E
+ at tab Duration-less spike Poisson oscillator
+
+ at item Poisson
+ at tab lambda, trel, trel+trfr, Vrst, Vfir
+ at tab E
+ at tab  Poisson oscillator
+
+ at item VdPol
+ at tab eta, omegasq
+ at tab A
+ at tab  Van der Pol oscillator
+
+ at item DotPulse
+ at tab f, Vrst, Vfir
+ at tab E
+ at tab  Dot Pulse generator
+
+ at item NMap
+ at tab Vspike, alpha, gamma, beta, Idc
+ at tab E
+ at tab Map neuron
+
+ at end multitable
+
+ at section Synapse species
+
+In addition to parameters listed in the table, each synapse has a
+conductance (parameter @var{gsyn}).
+
+ at multitable @columnfractions .1 .25 .15 .5
+ at headitem Synapse @tab Parameters @tab State vars @tab Description
+
+ at item AB
+ at tab Esyn, Epre, alpha, beta, trel
+ at tab S
+ at tab An alpha-beta synapse (Destexhe, Mainen, Sejnowsky, 1994)
+
+ at item Rall
+ at tab Esyn, Epre, tau
+ at tab S, R
+ at tab Rall synapse (Rall, 1967)
+
+ at item Map
+ at tab tau, delta, Vrev
+ at tab S
+ at tab Map synapse
+
+ at end multitable
+
+
+
+ at node Planned features
+ at chapter Planned features
+
+Interconnections, both control as well as direct, asynchronous stimuli
+transduction, between external peer CNrun nodes.
+
+ at node Index
+ at unnumbered @code{CNrun Lua API} Function index
+
+ at printindex fn
+
+ at bye
diff --git a/upstream/libcnrun.pc.in b/upstream/libcnrun.pc.in
new file mode 100644
index 0000000..e3e9654
--- /dev/null
+++ b/upstream/libcnrun.pc.in
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: cnrun
+Description: CNRun Library
+Version: @PACKAGE_VERSION@
+Requires: gsl xml2
+Cflags: -I${includedir}
+Libs: -L${libdir} -lcnrun
+Libs.private: -lxml2 -lgsl
diff --git a/upstream/src/Makefile.am b/upstream/src/Makefile.am
index 43b80d4..8f66064 100644
--- a/upstream/src/Makefile.am
+++ b/upstream/src/Makefile.am
@@ -1,6 +1,6 @@
 include $(top_srcdir)/src/Common.mk
 
-SUBDIRS = libstilton libcnrun libcnrun-lua
+SUBDIRS = libstilton libcnrun lua-cnrun
 if DO_TOOLS
 SUBDIRS += tools
 endif
diff --git a/upstream/src/libcnrun-lua/Makefile.am b/upstream/src/libcnrun-lua/Makefile.am
deleted file mode 100644
index ad671c4..0000000
--- a/upstream/src/libcnrun-lua/Makefile.am
+++ /dev/null
@@ -1,15 +0,0 @@
-include $(top_srcdir)/src/Common.mk
-AM_CXXFLAGS += $(LUA_INCLUDE)
-
-lib_LTLIBRARIES := \
-	libcnrun-lua.la
-libcnrun_lua_la_SOURCES := \
-	commands.cc cnhost.hh
-libcnrun_lua_la_LIBADD := \
-	../libcnrun/libcnrun.la \
-	../libstilton/libstilton.la \
-	$(LIBCN_LIBS) \
-	$(LUA_LIB)
-libcnrun_lua_la_LDFLAGS := \
-	-module -shared -avoid-version \  # -version-info $(subst .,:,$(PACKAGE_VERSION))
-	-rpath $(libdir)/$(PACKAGE)
diff --git a/upstream/src/libcnrun/Makefile.am b/upstream/src/libcnrun/Makefile.am
index fe05c9a..d4a01bb 100644
--- a/upstream/src/libcnrun/Makefile.am
+++ b/upstream/src/libcnrun/Makefile.am
@@ -1,6 +1,8 @@
 include $(top_srcdir)/src/Common.mk
+AM_CXXFLAGS += -shared -fPIC
 
-pkglib_LTLIBRARIES = libcnrun.la
+lib_LTLIBRARIES = \
+	libcnrun.la
 
 libcnrun_la_SOURCES = \
 	forward-decls.hh \
@@ -24,7 +26,21 @@ libcnrun_la_SOURCES = \
 	model.hh \
 	integrate-base.hh integrate-rk65.hh
 
+libcnrun_la_LIBADD = \
+	../libstilton/liba.a
+
 libcnrun_la_LDFLAGS = \
-	-avoid-version \
-	-rpath $(libdir)/$(PACKAGE) \
-	-shared -module
+	-shared -version-info $(subst .,:,$(PACKAGE_VERSION))
+
+libcnrunincdir = $(includedir)/libcnrun
+
+libcnruninc_HEADERS = \
+	forward-decls.hh \
+	sources.hh \
+	types.hh \
+	mx-attr.hh \
+	base-unit.hh	standalone-attr.hh    	hosted-attr.hh \
+	base-synapse.hh	standalone-neurons.hh 	hosted-neurons.hh  \
+	base-neuron.hh	standalone-synapses.hh	hosted-synapses.hh \
+	model.hh \
+	integrate-base.hh integrate-rk65.hh
diff --git a/upstream/src/libcnrun/base-neuron.hh b/upstream/src/libcnrun/base-neuron.hh
index a13c634..e1ff426 100644
--- a/upstream/src/libcnrun/base-neuron.hh
+++ b/upstream/src/libcnrun/base-neuron.hh
@@ -227,7 +227,8 @@ struct SSpikeloggerService {
         size_t n_spikes_since( double since = 0.) const;
 
       // spike density function
-        double sdf( double at, double sample_length, double sigma, size_t* nspikes = nullptr) const;
+        double sdf( double at, double sample_length, double sigma,
+                    size_t* nspikes = nullptr) const;
       // spike homogeneity function
         double shf( double at, double sample_length) const;
 
diff --git a/upstream/src/libcnrun/hosted-neurons.cc b/upstream/src/libcnrun/hosted-neurons.cc
index ed082d2..acb7540 100644
--- a/upstream/src/libcnrun/hosted-neurons.cc
+++ b/upstream/src/libcnrun/hosted-neurons.cc
@@ -72,22 +72,22 @@ do_detect_spike_or_whatever()
 
 // ===== HH and variations
 
-const char* const cnrun::__CN_ParamNames_NeuronHH_d[] = {
-        "Na conductance, " __CN_PU_CONDUCTANCE,
-        "Na equi potential, " __CN_PU_POTENTIAL,
-        "K conductance, " __CN_PU_CONDUCTANCE,
-        "K equi potential, " __CN_PU_POTENTIAL,
-        "Leak conductance, " __CN_PU_CONDUCTANCE,
-        "Leak equi potential, " __CN_PU_POTENTIAL,
-        "Membrane specific capacitance, " __CN_PU_CAPACITY_DENSITY,
+const char* const cnrun::CN_ParamNames_NeuronHH_d[] = {
+        "Na conductance, " CN_PU_CONDUCTANCE,
+        "Na equi potential, " CN_PU_POTENTIAL,
+        "K conductance, " CN_PU_CONDUCTANCE,
+        "K equi potential, " CN_PU_POTENTIAL,
+        "Leak conductance, " CN_PU_CONDUCTANCE,
+        "Leak equi potential, " CN_PU_POTENTIAL,
+        "Membrane specific capacitance, " CN_PU_CAPACITY_DENSITY,
 
         ".alpha_m_a",        ".alpha_m_b",        ".alpha_m_c",        ".beta_m_a",        ".beta_m_b",        ".beta_m_c",
         ".alpha_h_a",        ".alpha_h_b",        ".alpha_h_c",        ".beta_h_a",        ".beta_h_b",        ".beta_h_c",
         ".alpha_n_a",        ".alpha_n_b",        ".alpha_n_c",        ".beta_n_a",        ".beta_n_b",        ".beta_n_c",
 
-        "Externally applied DC, " __CN_PU_CURRENT,
+        "Externally applied DC, " CN_PU_CURRENT,
 };
-const char* const cnrun::__CN_ParamSyms_NeuronHH_d[] = {
+const char* const cnrun::CN_ParamSyms_NeuronHH_d[] = {
         "gNa",
         "ENa",
         "gK",
@@ -102,7 +102,7 @@ const char* const cnrun::__CN_ParamSyms_NeuronHH_d[] = {
 
         "Idc",
 };
-const double cnrun::__CN_Params_NeuronHH_d[] = {
+const double cnrun::CN_Params_NeuronHH_d[] = {
         7.15,   //   gNa: Na conductance in 1/(mOhms * cm^2)
        50.0,    //   ENa: Na equi potential in mV
         1.430,  //   gK: K conductance in 1/(mOhms * cm^2)
@@ -124,20 +124,20 @@ const double cnrun::__CN_Params_NeuronHH_d[] = {
 
 
 
-const double cnrun::__CN_Vars_NeuronHH_d[] = {
+const double cnrun::CN_Vars_NeuronHH_d[] = {
         -66.81,         // 0 - membrane potential E
           0.023,        // 1 - prob. for Na channel activation m
           0.800,        // 2 - prob. for not Na channel blocking h
           0.220,        // 3 - prob. for K channel activation n
 };
 
-const char* const cnrun::__CN_VarNames_NeuronHH_d[] = {
-        "Membrane potential, " __CN_PU_POTENTIAL,
+const char* const cnrun::CN_VarNames_NeuronHH_d[] = {
+        "Membrane potential, " CN_PU_POTENTIAL,
         "Prob. of Na channel activation",
         "1-Prob. of Na channel blocking",
         "Prob. of K channel activation",
 };
-const char* const cnrun::__CN_VarSyms_NeuronHH_d[] = {
+const char* const cnrun::CN_VarSyms_NeuronHH_d[] = {
         "E",
         ".m",
         ".h",
@@ -228,26 +228,26 @@ derivative( vector<double>& x, vector<double>& dx)
 
 
 
-const char* const cnrun::__CN_ParamNames_NeuronHH2_d[] = {
-        "Na conductance, " __CN_PU_CONDUCTANCE,
-        "Na equi potential, " __CN_PU_POTENTIAL,
-        "K conductance, " __CN_PU_CONDUCTANCE,
-        "K equi potential, " __CN_PU_POTENTIAL,
-        "Leak conductance, " __CN_PU_CONDUCTANCE,
-        "Leak equi potential, " __CN_PU_POTENTIAL,
-        "Membrane specific capacitance, " __CN_PU_CAPACITY_DENSITY,
-        "K leakage conductance, " __CN_PU_CONDUCTANCE,
-        "K leakage equi potential, " __CN_PU_POTENTIAL,
+const char* const cnrun::CN_ParamNames_NeuronHH2_d[] = {
+        "Na conductance, " CN_PU_CONDUCTANCE,
+        "Na equi potential, " CN_PU_POTENTIAL,
+        "K conductance, " CN_PU_CONDUCTANCE,
+        "K equi potential, " CN_PU_POTENTIAL,
+        "Leak conductance, " CN_PU_CONDUCTANCE,
+        "Leak equi potential, " CN_PU_POTENTIAL,
+        "Membrane specific capacitance, " CN_PU_CAPACITY_DENSITY,
+        "K leakage conductance, " CN_PU_CONDUCTANCE,
+        "K leakage equi potential, " CN_PU_POTENTIAL,
 
         ".alpha_m_a",        ".alpha_m_b",        ".alpha_m_c",        ".beta_m_a",        ".beta_m_b",        ".beta_m_c",
         ".alpha_h_a",        ".alpha_h_b",        ".alpha_h_c",        ".beta_h_a",        ".beta_h_b",        ".beta_h_c",
         ".alpha_n_a",        ".alpha_n_b",        ".alpha_n_c",        ".beta_n_a",        ".beta_n_b",        ".beta_n_c",
 
-//        "Total equi potential (?), " __CN_PU_POTENTIAL,
+//        "Total equi potential (?), " CN_PU_POTENTIAL,
 
-        "Externally applied DC, " __CN_PU_CURRENT,
+        "Externally applied DC, " CN_PU_CURRENT,
 };
-const char* const cnrun::__CN_ParamSyms_NeuronHH2_d[] = {
+const char* const cnrun::CN_ParamSyms_NeuronHH2_d[] = {
         "gNa",
         "ENa",
         "gK",
@@ -266,7 +266,7 @@ const char* const cnrun::__CN_ParamSyms_NeuronHH2_d[] = {
 
         "Idc",
 };
-const double cnrun::__CN_Params_NeuronHH2_d[] = {
+const double cnrun::CN_Params_NeuronHH2_d[] = {
         7.15,    //   gNa: Na conductance in 1/(mOhms * cm^2)
        50.0,     //   ENa: Na equi potential in mV
         1.43,    //   gK: K conductance in 1/(mOhms * cm^2)
@@ -290,7 +290,7 @@ const double cnrun::__CN_Params_NeuronHH2_d[] = {
 };
 
 
-const double cnrun::__CN_Vars_NeuronHH2_d[] = {
+const double cnrun::CN_Vars_NeuronHH2_d[] = {
 // as in a single-neuron run
       -66.56,   // 0 - membrane potential E
         0.0217, // 1 - prob. for Na channel activation m
@@ -374,23 +374,23 @@ derivative( vector<double>& x, vector<double>& dx)
 //#ifdef CN_WANT_MORE_NEURONS
 
 
-const char* const cnrun::__CN_ParamNames_NeuronEC_d[] = {
-        "Na conductance, " __CN_PU_CONDUCTANCE,
-        "Na equi potential, " __CN_PU_POTENTIAL,
-        "K conductance, " __CN_PU_CONDUCTANCE,
-        "K equi potential, " __CN_PU_POTENTIAL,
-        "Leak conductance, " __CN_PU_CONDUCTANCE,
-        "Leak equi potential, " __CN_PU_POTENTIAL,
-        "Membrane capacity density, " __CN_PU_CAPACITY_DENSITY,
-        "Externally applied DC, " __CN_PU_CURRENT,
-        "K leakage conductance, " __CN_PU_CONDUCTANCE,
-        "K leakage equi potential, " __CN_PU_POTENTIAL,
-        "Total equi potential, " __CN_PU_POTENTIAL,
+const char* const cnrun::CN_ParamNames_NeuronEC_d[] = {
+        "Na conductance, " CN_PU_CONDUCTANCE,
+        "Na equi potential, " CN_PU_POTENTIAL,
+        "K conductance, " CN_PU_CONDUCTANCE,
+        "K equi potential, " CN_PU_POTENTIAL,
+        "Leak conductance, " CN_PU_CONDUCTANCE,
+        "Leak equi potential, " CN_PU_POTENTIAL,
+        "Membrane capacity density, " CN_PU_CAPACITY_DENSITY,
+        "Externally applied DC, " CN_PU_CURRENT,
+        "K leakage conductance, " CN_PU_CONDUCTANCE,
+        "K leakage equi potential, " CN_PU_POTENTIAL,
+        "Total equi potential, " CN_PU_POTENTIAL,
         "gh1",
         "gh2",
-        "Vh, " __CN_PU_POTENTIAL
+        "Vh, " CN_PU_POTENTIAL
 };
-const char* const cnrun::__CN_ParamSyms_NeuronEC_d[] = {
+const char* const cnrun::CN_ParamSyms_NeuronEC_d[] = {
         "gNa",
         "ENa",
         "gK",
@@ -406,7 +406,7 @@ const char* const cnrun::__CN_ParamSyms_NeuronEC_d[] = {
         "gh2",
         "Vh"
 };
-const double cnrun::__CN_Params_NeuronEC_d[] = {
+const double cnrun::CN_Params_NeuronEC_d[] = {
         7.15,   //  0 - gNa: Na conductance in 1/(mOhms * cm^2)
        50.0,    //  1 - ENa: Na equi potential in mV
         1.43,   //  2 - gK: K conductance in 1/(mOhms * cm^2)
@@ -423,7 +423,7 @@ const double cnrun::__CN_Params_NeuronEC_d[] = {
       -20.0,    // 13 - Vh
 };
 
-const char* const cnrun::__CN_VarNames_NeuronEC_d[] = {
+const char* const cnrun::CN_VarNames_NeuronEC_d[] = {
         "Membrane potential",
         "Prob. of Na channel activation",
         "Prob. of not Na channel blocking",
@@ -431,7 +431,7 @@ const char* const cnrun::__CN_VarNames_NeuronEC_d[] = {
         "Ih1 activation",
         "Ih2 activation"
 };
-const char* const cnrun::__CN_VarSyms_NeuronEC_d[] = {
+const char* const cnrun::CN_VarSyms_NeuronEC_d[] = {
         "E",
         ".m",
         ".h",
@@ -439,7 +439,7 @@ const char* const cnrun::__CN_VarSyms_NeuronEC_d[] = {
         ".Ih1",
         ".Ih2"
 };
-const double cnrun::__CN_Vars_NeuronEC_d[] = {
+const double cnrun::CN_Vars_NeuronEC_d[] = {
       -64.1251,    // 0 - membrane potential E
         0.0176331, // 1 - prob. for Na channel activation m
         0.994931,  // 2 - prob. for not Na channel blocking h
@@ -510,20 +510,20 @@ derivative( vector<double>& x, vector<double>& dx)
 
 
 
-const char* const cnrun::__CN_ParamNames_NeuronECA_d[] = {
-        "Na conductance, " __CN_PU_CONDUCTANCE,
-        "Na equi potential, " __CN_PU_POTENTIAL,
-        "K conductance, " __CN_PU_CONDUCTANCE,
-        "K equi potential, " __CN_PU_POTENTIAL,
-        "Leak conductance, " __CN_PU_CONDUCTANCE,
-        "Leak equi potential, " __CN_PU_POTENTIAL,
-        "Membrane capacity density, " __CN_PU_CAPACITY_DENSITY,
-        "Externally applied DC, " __CN_PU_CURRENT,
+const char* const cnrun::CN_ParamNames_NeuronECA_d[] = {
+        "Na conductance, " CN_PU_CONDUCTANCE,
+        "Na equi potential, " CN_PU_POTENTIAL,
+        "K conductance, " CN_PU_CONDUCTANCE,
+        "K equi potential, " CN_PU_POTENTIAL,
+        "Leak conductance, " CN_PU_CONDUCTANCE,
+        "Leak equi potential, " CN_PU_POTENTIAL,
+        "Membrane capacity density, " CN_PU_CAPACITY_DENSITY,
+        "Externally applied DC, " CN_PU_CURRENT,
         "gNap",
         "gh",
         "Vh",
 };
-const char* const cnrun::__CN_ParamSyms_NeuronECA_d[] = {
+const char* const cnrun::CN_ParamSyms_NeuronECA_d[] = {
         "gNa",
         "ENa",
         "gK",
@@ -536,7 +536,7 @@ const char* const cnrun::__CN_ParamSyms_NeuronECA_d[] = {
         "gh",
         "Vh",
 };
-const double cnrun::__CN_Params_NeuronECA_d[] = {
+const double cnrun::CN_Params_NeuronECA_d[] = {
         52.0,        //  0 - Na conductance in 1/(mOhms * cm^2)
         55.0,        //  1 - Na equi potential in mV
         11.0,        //  2 - K conductance in 1/(mOhms * cm^2)
@@ -550,7 +550,7 @@ const double cnrun::__CN_Params_NeuronECA_d[] = {
        -20.0,        // 10 - Vh
 };
 
-const char* const cnrun::__CN_VarNames_NeuronECA_d[] = {
+const char* const cnrun::CN_VarNames_NeuronECA_d[] = {
         "Membrane potential",
         "Prob. of Na channel activation",
         "Prob. of Na channel blocking",
@@ -559,7 +559,7 @@ const char* const cnrun::__CN_VarNames_NeuronECA_d[] = {
         "Ih1 activation",
         "Ih2 activation"
 };
-const char* const cnrun::__CN_VarSyms_NeuronECA_d[] = {
+const char* const cnrun::CN_VarSyms_NeuronECA_d[] = {
         "E",
         ".m",
         ".h",
@@ -568,7 +568,7 @@ const char* const cnrun::__CN_VarSyms_NeuronECA_d[] = {
         ".Ih1",
         ".Ih2"
 };
-const double cnrun::__CN_Vars_NeuronECA_d[] = {
+const double cnrun::CN_Vars_NeuronECA_d[] = {
       -53.77902178,    // E
         0.0262406368,  // prob. for Na channel activation m
         0.9461831106,  // prob. for not Na channel blocking h
@@ -632,19 +632,19 @@ derivative( vector<double>& x, vector<double>& dx)
 
 // =========== oscillators
 
-const char* const cnrun::__CN_ParamNames_OscillatorColpitts[] = {
+const char* const cnrun::CN_ParamNames_OscillatorColpitts[] = {
         "a",
         "g",
         "q",
-        "\316\267"
+        "η"
 };
-const char* const cnrun::__CN_ParamSyms_OscillatorColpitts[] = {
+const char* const cnrun::CN_ParamSyms_OscillatorColpitts[] = {
         "a",
         "g",
         "q",
         "eta"
 };
-const double cnrun::__CN_Params_OscillatorColpitts[] = {
+const double cnrun::CN_Params_OscillatorColpitts[] = {
         1.0,    // a
         0.0797, // g
         0.6898, // q
@@ -652,17 +652,17 @@ const double cnrun::__CN_Params_OscillatorColpitts[] = {
 };
 
 
-const char* const cnrun::__CN_VarNames_OscillatorColpitts[] = {
+const char* const cnrun::CN_VarNames_OscillatorColpitts[] = {
         "x0",
         "x1",
         "x2"
 };
-const char* const cnrun::__CN_VarSyms_OscillatorColpitts[] = {
+const char* const cnrun::CN_VarSyms_OscillatorColpitts[] = {
         "x0",
         "x1",
         "x2"
 };
-const double cnrun::__CN_Vars_OscillatorColpitts[] = {
+const double cnrun::CN_Vars_OscillatorColpitts[] = {
         0.02,
         0.69,
        -0.53
@@ -693,26 +693,26 @@ derivative( vector<double>& x, vector<double>& dx)
 
 /*
 
-const char* const __CN_ParamNames_OscillatorLV[] = {
+const char* const CN_ParamNames_OscillatorLV[] = {
         "Self inhibition",
 };
-const char* const __CN_ParamSyms_OscillatorLV[] = {
+const char* const CN_ParamSyms_OscillatorLV[] = {
         "rho_ii",
 };
-const double __CN_Params_OscillatorLV[] = {
+const double CN_Params_OscillatorLV[] = {
         1.0,        // 0 - rho_ii: "self inhibition"
 };
 
 
-const char* const __CN_VarNames_OscillatorLV[] = {
-        "Membrane potential, " __CN_PU_POTENTIAL,
+const char* const CN_VarNames_OscillatorLV[] = {
+        "Membrane potential, " CN_PU_POTENTIAL,
         "Firing rate"
 };
-const char* const __CN_VarSyms_OscillatorLV[] = {
+const char* const CN_VarSyms_OscillatorLV[] = {
         "E",
         "fr"
 };
-const double __CN_Vars_OscillatorLV[] = {
+const double CN_Vars_OscillatorLV[] = {
         0.,        // 0 - added a place for E
         0.1        // 1 - firing rate
 };
@@ -726,31 +726,31 @@ const double __CN_Vars_OscillatorLV[] = {
 
 
 
-const char* const cnrun::__CN_ParamNames_OscillatorVdPol[] = {
-        "\316\267",
-        "\317\211\302\262",
+const char* const cnrun::CN_ParamNames_OscillatorVdPol[] = {
+        "η",
+        "ω²",
 //        "\317\203"
 };
-const char* const cnrun::__CN_ParamSyms_OscillatorVdPol[] = {
+const char* const cnrun::CN_ParamSyms_OscillatorVdPol[] = {
         "eta",
         "omegasq", // omega^2
 //        "sigma"
 };
-const double cnrun::__CN_Params_OscillatorVdPol[] = {
+const double cnrun::CN_Params_OscillatorVdPol[] = {
         1.0,        // eta
         0.1,        // omega^2
 //        0.0        // noise level
 };
 
-const char* const cnrun::__CN_VarNames_OscillatorVdPol[] = {
+const char* const cnrun::CN_VarNames_OscillatorVdPol[] = {
         "Amplitude",
         "v"
 };
-const char* const cnrun::__CN_VarSyms_OscillatorVdPol[] = {
+const char* const cnrun::CN_VarSyms_OscillatorVdPol[] = {
         "A",
         "v"
 };
-const double cnrun::__CN_Vars_OscillatorVdPol[] = {
+const double cnrun::CN_Vars_OscillatorVdPol[] = {
         0.1,       // amplitude
         0.0        // internal var
 };
diff --git a/upstream/src/libcnrun/hosted-synapses.cc b/upstream/src/libcnrun/hosted-synapses.cc
index 6aed7c8..8a57542 100644
--- a/upstream/src/libcnrun/hosted-synapses.cc
+++ b/upstream/src/libcnrun/hosted-synapses.cc
@@ -46,16 +46,16 @@ C_HostedSynapse (const TUnitType type_,
 
 // -- parameters
 
-const char* const cnrun::__CN_ParamNames_SynapseAB_dd[] = {
-//        "Synaptic strength g, " __CN_PU_CONDUCTANCE,
-        "Reversal potential Esyn, " __CN_PU_POTENTIAL,
-        "Presyn threshold potential Epre, " __CN_PU_POTENTIAL,
-        "Rise rate \316\261, " __CN_PU_RATE,
-        "Decay rate \316\262, " __CN_PU_RATE,
-        "Time of transmitter release, " __CN_PU_TIME,
+const char* const cnrun::CN_ParamNames_SynapseAB_dd[] = {
+//        "Synaptic strength g, " CN_PU_CONDUCTANCE,
+        "Reversal potential Esyn, " CN_PU_POTENTIAL,
+        "Presyn threshold potential Epre, " CN_PU_POTENTIAL,
+        "Rise rate α, " CN_PU_RATE,
+        "Decay rate β, " CN_PU_RATE,
+        "Time of transmitter release, " CN_PU_TIME,
 //        "Noise level \317\203",
 };
-const char* const cnrun::__CN_ParamSyms_SynapseAB_dd[] = {
+const char* const cnrun::CN_ParamSyms_SynapseAB_dd[] = {
 //        "gsyn",
         "Esyn",
         "Epre",
@@ -65,7 +65,7 @@ const char* const cnrun::__CN_ParamSyms_SynapseAB_dd[] = {
 //        "sigma",
 };
 
-const double cnrun::__CN_Params_SynapseAB_dd[] = {
+const double cnrun::CN_Params_SynapseAB_dd[] = {
 //        0.12,
         0,
       -20,
@@ -75,7 +75,7 @@ const double cnrun::__CN_Params_SynapseAB_dd[] = {
 //        0.
 };
 
-const double cnrun::__CN_Params_SynapseABMinus_dd[] = {
+const double cnrun::CN_Params_SynapseABMinus_dd[] = {
 //        0.12,
         0,
       -20,
@@ -85,7 +85,7 @@ const double cnrun::__CN_Params_SynapseABMinus_dd[] = {
 //        0.
 };
 
-const double cnrun::__CN_Params_SynapseMxAB_dd[] = {
+const double cnrun::CN_Params_SynapseMxAB_dd[] = {
 //        0.12,
         0,
       -20,
@@ -97,16 +97,16 @@ const double cnrun::__CN_Params_SynapseMxAB_dd[] = {
 };
 
 
-const char* const cnrun::__CN_ParamNames_SynapseAB_dr[] = {
-//        "Synaptic strength g, " __CN_PU_CONDUCTANCE,
-        "Assumed (target->E - Esyn), " __CN_PU_POTENTIAL,
-        "Presyn threshold potential Epre, " __CN_PU_POTENTIAL,
-        "Rise rate \316\261, " __CN_PU_RATE,
-        "Decay rate \316\262, " __CN_PU_RATE,
-        "Time of transmitter release, " __CN_PU_TIME,
+const char* const cnrun::CN_ParamNames_SynapseAB_dr[] = {
+//        "Synaptic strength g, " CN_PU_CONDUCTANCE,
+        "Assumed (target->E - Esyn), " CN_PU_POTENTIAL,
+        "Presyn threshold potential Epre, " CN_PU_POTENTIAL,
+        "Rise rate α, " CN_PU_RATE,
+        "Decay rate β, " CN_PU_RATE,
+        "Time of transmitter release, " CN_PU_TIME,
 //        "Noise level \317\203",
 };
-const char* const cnrun::__CN_ParamSyms_SynapseAB_dr[] = {
+const char* const cnrun::CN_ParamSyms_SynapseAB_dr[] = {
 //        "gsyn",
         "Ediff",
         "Epre",
@@ -117,7 +117,7 @@ const char* const cnrun::__CN_ParamSyms_SynapseAB_dr[] = {
 };
 
 
-const double cnrun::__CN_Params_SynapseMxAB_dr[] = {
+const double cnrun::CN_Params_SynapseMxAB_dr[] = {
 //        0.12,
       -60 - 0,  // Ediff: a reasonable Esyn - target->E, the latter being -60 mV at rest
       -20,
@@ -133,15 +133,15 @@ const double cnrun::__CN_Params_SynapseMxAB_dr[] = {
 
 
 
-const char* const cnrun::__CN_ParamNames_SynapseAB_rr[] = {
-//        "Synaptic strength g, " __CN_PU_CONDUCTANCE,
-        "Assumed (target->E - Esyn), " __CN_PU_VOLTAGE,
-        "Rise rate \316\261, " __CN_PU_RATE,
-        "Decay rate \316\262, " __CN_PU_RATE,
-        "Refractory period T, " __CN_PU_TIME,
+const char* const cnrun::CN_ParamNames_SynapseAB_rr[] = {
+//        "Synaptic strength g, " CN_PU_CONDUCTANCE,
+        "Assumed (target->E - Esyn), " CN_PU_VOLTAGE,
+        "Rise rate α, " CN_PU_RATE,
+        "Decay rate β, " CN_PU_RATE,
+        "Refractory period T, " CN_PU_TIME,
 //        "Noise level \317\203",
 };
-const char* const cnrun::__CN_ParamSyms_SynapseAB_rr[] = {
+const char* const cnrun::CN_ParamSyms_SynapseAB_rr[] = {
 //        "gsyn",
         "Ediff",
         "alpha",
@@ -149,7 +149,7 @@ const char* const cnrun::__CN_ParamSyms_SynapseAB_rr[] = {
         "T",
 //        "sigma",
 };
-const double cnrun::__CN_Params_SynapseAB_rr[] = {
+const double cnrun::CN_Params_SynapseAB_rr[] = {
 //        0.12,
       -60 - 0,
         0.27785150819749,
@@ -160,21 +160,21 @@ const double cnrun::__CN_Params_SynapseAB_rr[] = {
 
 
 
-const char* const cnrun::__CN_ParamNames_SynapseRall_dd[] = {
-//        "Synaptic strength g, " __CN_PU_CONDUCTANCE,
-        "Reversal potential, " __CN_PU_POTENTIAL,
-        "Presynaptic threshold potential, " __CN_PU_POTENTIAL,
-        "\317\204, " __CN_PU_RATE,
+const char* const cnrun::CN_ParamNames_SynapseRall_dd[] = {
+//        "Synaptic strength g, " CN_PU_CONDUCTANCE,
+        "Reversal potential, " CN_PU_POTENTIAL,
+        "Presynaptic threshold potential, " CN_PU_POTENTIAL,
+        "τ, " CN_PU_RATE,
 //        "Noise level \317\203",
 };
-const char* const cnrun::__CN_ParamSyms_SynapseRall_dd[] = {
+const char* const cnrun::CN_ParamSyms_SynapseRall_dd[] = {
 //        "gsyn",
         "Esyn",
         "Epre",
         "tau",
 //        "sigma",
 };
-const double cnrun::__CN_Params_SynapseRall_dd[] = {
+const double cnrun::CN_Params_SynapseRall_dd[] = {
 //        0.12,
         0,
       -20,
@@ -187,26 +187,26 @@ const double cnrun::__CN_Params_SynapseRall_dd[] = {
 
 // -- variables
 
-const char* const cnrun::__CN_VarNames_SynapseAB[] = {
+const char* const cnrun::CN_VarNames_SynapseAB[] = {
         "Amount of neurotransmitter released S"
 };
-const char* const cnrun::__CN_VarSyms_SynapseAB[] = {
+const char* const cnrun::CN_VarSyms_SynapseAB[] = {
         "S"
 };
-const double cnrun::__CN_Vars_SynapseAB[] = {
+const double cnrun::CN_Vars_SynapseAB[] = {
         0.
 };
 
 
-const char* const cnrun::__CN_VarNames_SynapseRall[] = {
+const char* const cnrun::CN_VarNames_SynapseRall[] = {
         "Amount of neurotransmitter released S",
         "Amount of neurotransmitter absorbed R",
 };
-const char* const cnrun::__CN_VarSyms_SynapseRall[] = {
+const char* const cnrun::CN_VarSyms_SynapseRall[] = {
         "S",
         "R",
 };
-const double cnrun::__CN_Vars_SynapseRall[] = {
+const double cnrun::CN_Vars_SynapseRall[] = {
         0.,
         0.
 };
@@ -274,7 +274,7 @@ derivative( vector<double>& x, vector<double>& dx)
               // decrement q then, just for this while
                 while ( effective_q  &&  M->model_time(x) - _kq[q()-effective_q] > P[_rtime_] )
                         --effective_q;
-#ifdef __CN_MORECODE__
+#ifdef CN_MORECODE__
                 if ( effective_q < q() )
                         M->vp( 6, "YMxAB %s smacks %zu spike(s) of %zu at %g(+%g)\n", label,
                                (size_t)q() - effective_q, (size_t)q(),
@@ -305,7 +305,6 @@ update_queue()
                         _kq.erase( _kq.begin());
                 else
                         break;
-//                cout << "q--\n";
         }
 }
 
diff --git a/upstream/src/libcnrun/model-struct.cc b/upstream/src/libcnrun/model-struct.cc
index e74e8c2..e747583 100644
--- a/upstream/src/libcnrun/model-struct.cc
+++ b/upstream/src/libcnrun/model-struct.cc
@@ -996,15 +996,15 @@ dump_units( FILE *strm) const
                                  U->species(), U->type_description());
                         for ( p = 0; p < U->p_no(); ++p )
                                 if ( *U->param_sym(p) != '.' || options.verbosely > 5 )
-                                        fprintf( strm, "%2d: %-5s\t= %s %s\n",
-                                                 p, U->param_sym(p),
+                                        fprintf( strm, " %-12s %s %s\n",
+                                                 U->param_sym(p),
                                                  double_dot_aligned_s( U->param_value(p), 4, 6).c_str(),
                                                  U->param_name(p));
                         fprintf( strm, "Variables: ---\n");
                         for ( p = 0; p < U->v_no(); ++p )
                                 if ( *U->var_sym(p) != '.' || options.verbosely > 5 )
-                                        fprintf( strm, "%2d: %-5s\t= %s %s\n",
-                                                 p, U->var_sym(p),
+                                        fprintf( strm, "%-12s\t= %s %s\n",
+                                                 U->var_sym(p),
                                                  double_dot_aligned_s( U->var_value(p), 4, 6).c_str(),
                                                  U->var_name(p));
                 }
@@ -1018,15 +1018,15 @@ dump_units( FILE *strm) const
                         fprintf( strm, "    parameters:\n");
                         for ( p = 0; p < U->p_no(); ++p )
                                 if ( *U->param_sym(p) != '.' || options.verbosely > 5 )
-                                        fprintf( strm, "%2d: %-5s\t= %s %s\n",
-                                                 p, U->param_sym(p),
+                                        fprintf( strm, "%-12s\t= %s %s\n",
+                                                 U->param_sym(p),
                                                  double_dot_aligned_s( U->param_value(p), 4, 6).c_str(),
                                                  U->param_name(p));
                         fprintf( strm, "Variables: ---\n");
                         for ( p = 0; p < U->v_no(); ++p )
                                 if ( *U->var_sym(p) != '.' || options.verbosely > 5 )
-                                        fprintf( strm, "%2d: %-5s\t= %s %s\n",
-                                                 p, U->var_sym(p),
+                                        fprintf( strm, "%-12s\t= %s %s\n",
+                                                 U->var_sym(p),
                                                  double_dot_aligned_s( U->var_value(p), 4, 6).c_str(),
                                                  U->var_name(p));
 
diff --git a/upstream/src/libcnrun/standalone-neurons.cc b/upstream/src/libcnrun/standalone-neurons.cc
index 332419a..ef9ac54 100644
--- a/upstream/src/libcnrun/standalone-neurons.cc
+++ b/upstream/src/libcnrun/standalone-neurons.cc
@@ -42,33 +42,33 @@ C_StandaloneNeuron (TUnitType type_, const string& label_,
 
 // --------- Rhythm'n'Blues
 
-const char* const cnrun::__CN_ParamNames_NeuronHH_r[] = {
-        "a, " __CN_PU_FREQUENCY,
-        "I\342\202\200, " __CN_PU_CURRENT,
-        "r in F(I) = a (I-I\342\202\200)^r",
-        "Externally applied DC, " __CN_PU_CURRENT,
+const char* const cnrun::CN_ParamNames_NeuronHH_r[] = {
+        "a, " CN_PU_FREQUENCY,
+        "I₀, " CN_PU_CURRENT,
+        "r in F(I) = a (I-I₀)^r",
+        "Externally applied DC, " CN_PU_CURRENT,
 };
-const char* const cnrun::__CN_ParamSyms_NeuronHH_r[] = {
+const char* const cnrun::CN_ParamSyms_NeuronHH_r[] = {
         "a",
         "I0",
         "r",
         "Idc",
 };
-const double cnrun::__CN_Params_NeuronHH_r[] = {
-        0.185,                //   a,
-        0.0439,                //   I0,
-        0.564,                //   r in F(I) = a * (I-I0)^r
+const double cnrun::CN_Params_NeuronHH_r[] = {
+        0.185,            //   a,
+        0.0439,           //   I0,
+        0.564,            //   r in F(I) = a * (I-I0)^r
         0.                // Externally applied DC
 };
 
 
-const char* const cnrun::__CN_VarNames_NeuronHH_r[] = {
-        "Spiking rate, " __CN_PU_FREQUENCY,
+const char* const cnrun::CN_VarNames_NeuronHH_r[] = {
+        "Spiking rate, " CN_PU_FREQUENCY,
 };
-const char* const cnrun::__CN_VarSyms_NeuronHH_r[] = {
+const char* const cnrun::CN_VarSyms_NeuronHH_r[] = {
         "F",
 };
-const double cnrun::__CN_Vars_NeuronHH_r[] = {
+const double cnrun::CN_Vars_NeuronHH_r[] = {
          0.        // frequency F
 };
 
@@ -106,33 +106,33 @@ preadvance()
 
 
 
-const char* const cnrun::__CN_ParamNames_OscillatorPoissonDot[] = {
-        "Rate \316\273, " __CN_PU_RATE,
-        "Resting potential, " __CN_PU_POTENTIAL,
-        "Potential when firing, " __CN_PU_POTENTIAL,
+const char* const cnrun::CN_ParamNames_OscillatorPoissonDot[] = {
+        "Rate λ, " CN_PU_RATE,
+        "Resting potential, " CN_PU_POTENTIAL,
+        "Potential when firing, " CN_PU_POTENTIAL,
 };
-const char* const cnrun::__CN_ParamSyms_OscillatorPoissonDot[] = {
+const char* const cnrun::CN_ParamSyms_OscillatorPoissonDot[] = {
         "lambda",
         "Vrst",
         "Vfir",
 };
-const double cnrun::__CN_Params_OscillatorPoissonDot[] = {
+const double cnrun::CN_Params_OscillatorPoissonDot[] = {
         0.02,        // firing rate Lambda [1/ms]=[10^3 Hz]
       -60.0,        // input neuron resting potential
        20.0,        // input neuron potential when firing
 };
 
-const char* const cnrun::__CN_VarNames_OscillatorPoissonDot[] = {
-        "Membrane potential, " __CN_PU_POTENTIAL,
+const char* const cnrun::CN_VarNames_OscillatorPoissonDot[] = {
+        "Membrane potential, " CN_PU_POTENTIAL,
         "Spikes recently fired",
 //        "Time"
 };
-const char* const cnrun::__CN_VarSyms_OscillatorPoissonDot[] = {
+const char* const cnrun::CN_VarSyms_OscillatorPoissonDot[] = {
         "E",
         "nspk",
 //        "t"
 };
-const double cnrun::__CN_Vars_OscillatorPoissonDot[] = {
+const double cnrun::CN_Vars_OscillatorPoissonDot[] = {
         -60.,        // = Vrst, per initialization code found in ctor
           0,
 //          0.
@@ -214,21 +214,21 @@ do_detect_spike_or_whatever()
 
 
 
-const char* const cnrun::__CN_ParamNames_OscillatorPoisson[] = {
-        "Rate \316\273, " __CN_PU_RATE,
-        "Input neuron resting potential, " __CN_PU_POTENTIAL,
-        "Input neuron potential when firing, " __CN_PU_POTENTIAL,
-        "Spike time, " __CN_PU_TIME,
-        "Spike time + refractory period, " __CN_PU_TIME,
+const char* const cnrun::CN_ParamNames_OscillatorPoisson[] = {
+        "Rate λ, " CN_PU_RATE,
+        "Input neuron resting potential, " CN_PU_POTENTIAL,
+        "Input neuron potential when firing, " CN_PU_POTENTIAL,
+        "Spike time, " CN_PU_TIME,
+        "Spike time + refractory period, " CN_PU_TIME,
 };
-const char* const cnrun::__CN_ParamSyms_OscillatorPoisson[] = {
+const char* const cnrun::CN_ParamSyms_OscillatorPoisson[] = {
         "lambda",
         "trel",
         "trel+trfr",
         "Vrst",
         "Vfir",
 };
-const double cnrun::__CN_Params_OscillatorPoisson[] = {
+const double cnrun::CN_Params_OscillatorPoisson[] = {
         0.02,        // firing rate Lambda [1/ms]=[10^3 Hz]
         0.0,        // spike time
         0.0,        // refractory period + spike time
@@ -236,13 +236,13 @@ const double cnrun::__CN_Params_OscillatorPoisson[] = {
        20.0,        // input neuron potential when firing
 };
 
-const char* const cnrun::__CN_VarNames_OscillatorPoisson[] = {
-        "Membrane potential E, " __CN_PU_POTENTIAL,
+const char* const cnrun::CN_VarNames_OscillatorPoisson[] = {
+        "Membrane potential E, " CN_PU_POTENTIAL,
 };
-const char* const cnrun::__CN_VarSyms_OscillatorPoisson[] = {
+const char* const cnrun::CN_VarSyms_OscillatorPoisson[] = {
         "E",
 };
-const double cnrun::__CN_Vars_OscillatorPoisson[] = {
+const double cnrun::CN_Vars_OscillatorPoisson[] = {
         -60.,
 };
 
@@ -299,7 +299,7 @@ do_detect_spike_or_whatever()
 
 // Map neurons require descrete time
 
-const double cnrun::__CN_Params_NeuronMap[] = {
+const double cnrun::CN_Params_NeuronMap[] = {
         60.0,                // 0 - Vspike: spike Amplitude factor
          3.0002440,        // 1 - alpha: "steepness / size" parameter
         -2.4663490,        // 3 - gamma: "shift / excitation" parameter
@@ -307,14 +307,14 @@ const double cnrun::__CN_Params_NeuronMap[] = {
          0.,
 // Old comment by TN: beta chosen such that Isyn= 10 "nA" is the threshold for spiking
 };
-const char* const cnrun::__CN_ParamNames_NeuronMap[] = {
-        "Spike amplitude factor, " __CN_PU_POTENTIAL,
-        "\"Steepness / size\" parameter \316\261",
-        "\"Shift / excitation\" parameter \316\263",
-        "Input sensitivity \316\262, " __CN_PU_RESISTANCE,
-        "External DC, " __CN_PU_CURRENT,
+const char* const cnrun::CN_ParamNames_NeuronMap[] = {
+        "Spike amplitude factor, " CN_PU_POTENTIAL,
+        "\"Steepness / size\" parameter α",
+        "\"Shift / excitation\" parameter γ",
+        "Input sensitivity β, " CN_PU_RESISTANCE,
+        "External DC, " CN_PU_CURRENT,
 };
-const char* const cnrun::__CN_ParamSyms_NeuronMap[] = {
+const char* const cnrun::CN_ParamSyms_NeuronMap[] = {
         "Vspike",
         "alpha",
         "gamma",
@@ -322,13 +322,13 @@ const char* const cnrun::__CN_ParamSyms_NeuronMap[] = {
         "Idc"
 };
 
-const double cnrun::__CN_Vars_NeuronMap[] = {
+const double cnrun::CN_Vars_NeuronMap[] = {
       -50,        // E
 };
-const char* const cnrun::__CN_VarNames_NeuronMap[] = {
-        "Membrane potential E, " __CN_PU_POTENTIAL
+const char* const cnrun::CN_VarNames_NeuronMap[] = {
+        "Membrane potential E, " CN_PU_POTENTIAL
 };
-const char* const cnrun::__CN_VarSyms_NeuronMap[] = {
+const char* const cnrun::CN_VarSyms_NeuronMap[] = {
         "E",
 };
 
@@ -371,31 +371,31 @@ preadvance()
 
 // ----- Pulse
 
-const char* const cnrun::__CN_ParamNames_NeuronDotPulse[] = {
-        "Frequency f, " __CN_PU_FREQUENCY,
-        "Resting potential Vrst, " __CN_PU_VOLTAGE,
-        "Firing potential Vfir, " __CN_PU_VOLTAGE,
+const char* const cnrun::CN_ParamNames_NeuronDotPulse[] = {
+        "Frequency f, " CN_PU_FREQUENCY,
+        "Resting potential Vrst, " CN_PU_VOLTAGE,
+        "Firing potential Vfir, " CN_PU_VOLTAGE,
 };
-const char* const cnrun::__CN_ParamSyms_NeuronDotPulse[] = {
+const char* const cnrun::CN_ParamSyms_NeuronDotPulse[] = {
         "f",
         "Vrst",
         "Vfir",
 };
-const double cnrun::__CN_Params_NeuronDotPulse[] = {
+const double cnrun::CN_Params_NeuronDotPulse[] = {
          10,
         -60,
          20
 };
 
-const char* const cnrun::__CN_VarNames_NeuronDotPulse[] = {
-        "Membrane potential E, " __CN_PU_VOLTAGE,
+const char* const cnrun::CN_VarNames_NeuronDotPulse[] = {
+        "Membrane potential E, " CN_PU_VOLTAGE,
         "Spikes recently fired",
 };
-const char* const cnrun::__CN_VarSyms_NeuronDotPulse[] = {
+const char* const cnrun::CN_VarSyms_NeuronDotPulse[] = {
         "E",
         "nspk",
 };
-const double cnrun::__CN_Vars_NeuronDotPulse[] = {
+const double cnrun::CN_Vars_NeuronDotPulse[] = {
         -60.,        // E
          0
 };
diff --git a/upstream/src/libcnrun/standalone-synapses.cc b/upstream/src/libcnrun/standalone-synapses.cc
index 6370805..f4f1e54 100644
--- a/upstream/src/libcnrun/standalone-synapses.cc
+++ b/upstream/src/libcnrun/standalone-synapses.cc
@@ -39,20 +39,20 @@ C_StandaloneSynapse (TUnitType type_,
 
 
 
-const double cnrun::__CN_Params_SynapseMap[] = {
+const double cnrun::CN_Params_SynapseMap[] = {
 //        0.075,
        18.94463,  // Decay rate time constant
         0.25,
         0
 
 };
-const char* const cnrun::__CN_ParamNames_SynapseMap[] = {
-//        "Synaptic strength g, " __CN_PU_CONDUCTANCE,
-        "Decay rate time constant \317\204, " __CN_PU_RATE,
-        "Release quantile \316\264",
-        "Reversal potential Vrev, " __CN_PU_POTENTIAL
+const char* const cnrun::CN_ParamNames_SynapseMap[] = {
+//        "Synaptic strength g, " CN_PU_CONDUCTANCE,
+        "Decay rate time constant τ, " CN_PU_RATE,
+        "Release quantile δ",
+        "Reversal potential Vrev, " CN_PU_POTENTIAL
 };
-const char* const cnrun::__CN_ParamSyms_SynapseMap[] = {
+const char* const cnrun::CN_ParamSyms_SynapseMap[] = {
 //        "gsyn",
         "tau",
         "delta",
diff --git a/upstream/src/libcnrun/types.cc b/upstream/src/libcnrun/types.cc
index 5e5372e..d815542 100644
--- a/upstream/src/libcnrun/types.cc
+++ b/upstream/src/libcnrun/types.cc
@@ -16,7 +16,6 @@
 
 #include <cstdio>
 #include <cstring>
-#include <iostream>
 
 #include "libstilton/string.hh"
 #include "types.hh"
@@ -30,12 +29,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
 
         { UT_HOSTED,  // NT_HH_D
           8+18, 4,
-          __CN_Params_NeuronHH_d,
-          __CN_ParamNames_NeuronHH_d,
-          __CN_ParamSyms_NeuronHH_d,
-          __CN_Vars_NeuronHH_d,
-          __CN_VarNames_NeuronHH_d,
-          __CN_VarSyms_NeuronHH_d,
+          CN_Params_NeuronHH_d,
+          CN_ParamNames_NeuronHH_d,
+          CN_ParamSyms_NeuronHH_d,
+          CN_Vars_NeuronHH_d,
+          CN_VarNames_NeuronHH_d,
+          CN_VarSyms_NeuronHH_d,
           "HH",
           "HH",
           "Hodgkin-Huxley by Traub and Miles (1991)"
@@ -43,12 +42,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
 
         { UT_RATEBASED,  // NT_HH_R
           4, 1,
-          __CN_Params_NeuronHH_r,
-          __CN_ParamNames_NeuronHH_r,
-          __CN_ParamSyms_NeuronHH_r,
-          __CN_Vars_NeuronHH_r,
-          __CN_VarNames_NeuronHH_r,
-          __CN_VarSyms_NeuronHH_r,
+          CN_Params_NeuronHH_r,
+          CN_ParamNames_NeuronHH_r,
+          CN_ParamSyms_NeuronHH_r,
+          CN_Vars_NeuronHH_r,
+          CN_VarNames_NeuronHH_r,
+          CN_VarSyms_NeuronHH_r,
           "HHRate",
           "HHRate",
           "Rate-based model of the Hodgkin-Huxley neuron"
@@ -56,12 +55,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
 
         { UT_HOSTED,  // NT_HH2_D
           11+18-1, 4,
-          __CN_Params_NeuronHH2_d,
-          __CN_ParamNames_NeuronHH2_d,
-          __CN_ParamSyms_NeuronHH2_d,
-          __CN_Vars_NeuronHH2_d,
-          __CN_VarNames_NeuronHH_d,
-          __CN_VarSyms_NeuronHH_d,
+          CN_Params_NeuronHH2_d,
+          CN_ParamNames_NeuronHH2_d,
+          CN_ParamSyms_NeuronHH2_d,
+          CN_Vars_NeuronHH2_d,
+          CN_VarNames_NeuronHH_d,
+          CN_VarSyms_NeuronHH_d,
           "HH2",
           "HH2",
           "Hodgkin-Huxley by Traub & Miles w/ K leakage"
@@ -79,12 +78,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
 //#ifdef CN_WANT_MORE_NEURONS
         { UT_HOSTED,  // NT_EC_D
           14, 6,
-          __CN_Params_NeuronEC_d,
-          __CN_ParamNames_NeuronEC_d,
-          __CN_ParamSyms_NeuronEC_d,
-          __CN_Vars_NeuronEC_d,
-          __CN_VarNames_NeuronEC_d,
-          __CN_VarSyms_NeuronEC_d,
+          CN_Params_NeuronEC_d,
+          CN_ParamNames_NeuronEC_d,
+          CN_ParamSyms_NeuronEC_d,
+          CN_Vars_NeuronEC_d,
+          CN_VarNames_NeuronEC_d,
+          CN_VarSyms_NeuronEC_d,
           "EC",
           "EC",
           "Entorhinal Cortex neuron"
@@ -92,12 +91,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
 
         { UT_HOSTED,  // NT_ECA_D
           11, 7,
-          __CN_Params_NeuronECA_d,
-          __CN_ParamNames_NeuronECA_d,
-          __CN_ParamSyms_NeuronECA_d,
-          __CN_Vars_NeuronECA_d,
-          __CN_VarNames_NeuronECA_d,
-          __CN_VarSyms_NeuronECA_d,
+          CN_Params_NeuronECA_d,
+          CN_ParamNames_NeuronECA_d,
+          CN_ParamSyms_NeuronECA_d,
+          CN_Vars_NeuronECA_d,
+          CN_VarNames_NeuronECA_d,
+          CN_VarSyms_NeuronECA_d,
           "ECA",
           "ECA",
           "Entorhinal Cortex (A) neuron"
@@ -106,12 +105,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
 
         { UT_OSCILLATOR | UT_DOT,  // NT_POISSONDOT
           3, 2,
-          __CN_Params_OscillatorPoissonDot,
-          __CN_ParamNames_OscillatorPoissonDot,
-          __CN_ParamSyms_OscillatorPoissonDot,
-          __CN_Vars_OscillatorPoissonDot,
-          __CN_VarNames_OscillatorPoissonDot,
-          __CN_VarSyms_OscillatorPoissonDot,
+          CN_Params_OscillatorPoissonDot,
+          CN_ParamNames_OscillatorPoissonDot,
+          CN_ParamSyms_OscillatorPoissonDot,
+          CN_Vars_OscillatorPoissonDot,
+          CN_VarNames_OscillatorPoissonDot,
+          CN_VarSyms_OscillatorPoissonDot,
           "DotPoisson",
           "DotPoisson",
           "Duration-less spike Poisson oscillator"
@@ -119,12 +118,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
 
         { UT_OSCILLATOR,  // NT_POISSON
           5, 1,
-          __CN_Params_OscillatorPoisson,
-          __CN_ParamNames_OscillatorPoisson,
-          __CN_ParamSyms_OscillatorPoisson,
-          __CN_Vars_OscillatorPoisson,
-          __CN_VarNames_OscillatorPoisson,
-          __CN_VarSyms_OscillatorPoisson,
+          CN_Params_OscillatorPoisson,
+          CN_ParamNames_OscillatorPoisson,
+          CN_ParamSyms_OscillatorPoisson,
+          CN_Vars_OscillatorPoisson,
+          CN_VarNames_OscillatorPoisson,
+          CN_VarSyms_OscillatorPoisson,
           "Poisson",
           "Poisson",
           "Poisson oscillator"
@@ -133,12 +132,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
 /*
         { UT_HOSTED | UT_OSCILLATOR,  // NT_LV
           1, 2,
-          __CN_Params_OscillatorLV,
-          __CN_ParamNames_OscillatorLV,
-          __CN_ParamSyms_OscillatorLV,
-          __CN_Vars_OscillatorLV,
-          __CN_VarNames_OscillatorLV,
-          __CN_VarSyms_OscillatorLV,
+          CN_Params_OscillatorLV,
+          CN_ParamNames_OscillatorLV,
+          CN_ParamSyms_OscillatorLV,
+          CN_Vars_OscillatorLV,
+          CN_VarNames_OscillatorLV,
+          CN_VarSyms_OscillatorLV,
           "LV",
           "LV",
           "Lotka-Volterra oscillator"
@@ -147,12 +146,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
 
         { UT_HOSTED | UT_OSCILLATOR,  // NT_COLPITTS,
           4, 3,
-          __CN_Params_OscillatorColpitts,
-          __CN_ParamNames_OscillatorColpitts,
-          __CN_ParamSyms_OscillatorColpitts,
-          __CN_Vars_OscillatorColpitts,
-          __CN_VarNames_OscillatorColpitts,
-          __CN_VarSyms_OscillatorColpitts,
+          CN_Params_OscillatorColpitts,
+          CN_ParamNames_OscillatorColpitts,
+          CN_ParamSyms_OscillatorColpitts,
+          CN_Vars_OscillatorColpitts,
+          CN_VarNames_OscillatorColpitts,
+          CN_VarSyms_OscillatorColpitts,
           "Colpitts",
           "Colpitts",
           "Colpitts oscillator"
@@ -160,12 +159,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
 
         { UT_HOSTED | UT_OSCILLATOR,  // NT_VDPOL,
           2, 2,
-          __CN_Params_OscillatorVdPol,
-          __CN_ParamNames_OscillatorVdPol,
-          __CN_ParamSyms_OscillatorVdPol,
-          __CN_Vars_OscillatorVdPol,
-          __CN_VarNames_OscillatorVdPol,
-          __CN_VarSyms_OscillatorVdPol,
+          CN_Params_OscillatorVdPol,
+          CN_ParamNames_OscillatorVdPol,
+          CN_ParamSyms_OscillatorVdPol,
+          CN_Vars_OscillatorVdPol,
+          CN_VarNames_OscillatorVdPol,
+          CN_VarSyms_OscillatorVdPol,
           "VdPol",
           "VdPol",
           "Van der Pol oscillator"
@@ -173,12 +172,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
 
         { UT_OSCILLATOR | UT_DOT,  // NT_DOTPULSE
           3, 2,
-          __CN_Params_NeuronDotPulse,
-          __CN_ParamNames_NeuronDotPulse,
-          __CN_ParamSyms_NeuronDotPulse,
-          __CN_Vars_NeuronDotPulse,
-          __CN_VarNames_NeuronDotPulse,
-          __CN_VarSyms_NeuronDotPulse,
+          CN_Params_NeuronDotPulse,
+          CN_ParamNames_NeuronDotPulse,
+          CN_ParamSyms_NeuronDotPulse,
+          CN_Vars_NeuronDotPulse,
+          CN_VarNames_NeuronDotPulse,
+          CN_VarSyms_NeuronDotPulse,
           "DotPulse",
           "DotPulse",
           "Dot Pulse generator"
@@ -186,12 +185,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
 
         { UT_DDTSET,  // NT_MAP
           5, 1,
-          __CN_Params_NeuronMap,
-          __CN_ParamNames_NeuronMap,
-          __CN_ParamSyms_NeuronMap,
-          __CN_Vars_NeuronMap,
-          __CN_VarNames_NeuronMap,
-          __CN_VarSyms_NeuronMap,
+          CN_Params_NeuronMap,
+          CN_ParamNames_NeuronMap,
+          CN_ParamSyms_NeuronMap,
+          CN_Vars_NeuronMap,
+          CN_VarNames_NeuronMap,
+          CN_VarSyms_NeuronMap,
           "NMap",
           "NMap",
           "Map neuron"
@@ -204,12 +203,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
 
         { UT_HOSTED,  // YT_AB_DD
           5, 1,
-          __CN_Params_SynapseAB_dd,
-          __CN_ParamNames_SynapseAB_dd,
-          __CN_ParamSyms_SynapseAB_dd,
-          __CN_Vars_SynapseAB,
-          __CN_VarNames_SynapseAB,
-          __CN_VarSyms_SynapseAB,
+          CN_Params_SynapseAB_dd,
+          CN_ParamNames_SynapseAB_dd,
+          CN_ParamSyms_SynapseAB_dd,
+          CN_Vars_SynapseAB,
+          CN_VarNames_SynapseAB,
+          CN_VarSyms_SynapseAB,
           "AB",
           "AB_pp",
           "Alpha-Beta synapse (Destexhe, Mainen, Sejnowsky, 1994)"
@@ -235,12 +234,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
 
         { UT_HOSTED | UT_RATEBASED,  // YT_AB_RR
           4, 1,
-          __CN_Params_SynapseAB_rr,
-          __CN_ParamNames_SynapseAB_rr,
-          __CN_ParamSyms_SynapseAB_rr,
-          __CN_Vars_SynapseAB,
-          __CN_VarNames_SynapseAB,
-          __CN_VarSyms_SynapseAB,
+          CN_Params_SynapseAB_rr,
+          CN_ParamNames_SynapseAB_rr,
+          CN_ParamSyms_SynapseAB_rr,
+          CN_Vars_SynapseAB,
+          CN_VarNames_SynapseAB,
+          CN_VarSyms_SynapseAB,
           "AB",
           "AB_tt",
           "Alpha-Beta synapse (tonic->tonic)"
@@ -248,12 +247,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
 
         { UT_HOSTED | UT_MULTIPLEXING,  // YT_MXAB_DD, inheriting all parameters except alpha, and variables from YT_AB
           5, 1,
-          __CN_Params_SynapseMxAB_dd,
-          __CN_ParamNames_SynapseAB_dd,
-          __CN_ParamSyms_SynapseAB_dd,
-          __CN_Vars_SynapseAB,
-          __CN_VarNames_SynapseAB,
-          __CN_VarSyms_SynapseAB,
+          CN_Params_SynapseMxAB_dd,
+          CN_ParamNames_SynapseAB_dd,
+          CN_ParamSyms_SynapseAB_dd,
+          CN_Vars_SynapseAB,
+          CN_VarNames_SynapseAB,
+          CN_VarSyms_SynapseAB,
           "AB",
           "AB_Mx_pp",
           "Multiplexing Alpha-Beta synapse for use with durationless units as source (phasic->phasic)"
@@ -261,12 +260,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
 
         { UT_HOSTED | UT_TGTISRATE | UT_MULTIPLEXING,  // YT_MXAB_DR
           5, 1,
-          __CN_Params_SynapseMxAB_dr,
-          __CN_ParamNames_SynapseAB_dr,
-          __CN_ParamSyms_SynapseAB_dr,
-          __CN_Vars_SynapseAB,
-          __CN_VarNames_SynapseAB,
-          __CN_VarSyms_SynapseAB,
+          CN_Params_SynapseMxAB_dr,
+          CN_ParamNames_SynapseAB_dr,
+          CN_ParamSyms_SynapseAB_dr,
+          CN_Vars_SynapseAB,
+          CN_VarNames_SynapseAB,
+          CN_VarSyms_SynapseAB,
           "AB",
           "AB_Mx_pt",
           "Multiplexing Alpha-Beta synapse for use with durationless units as source (phasic->tonic)"
@@ -275,12 +274,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
 
         { UT_HOSTED,  // YT_ABMINS_DD
           5, 1,
-          __CN_Params_SynapseABMinus_dd,
-          __CN_ParamNames_SynapseAB_dd,
-          __CN_ParamSyms_SynapseAB_dd,
-          __CN_Vars_SynapseAB,
-          __CN_VarNames_SynapseAB,
-          __CN_VarSyms_SynapseAB,
+          CN_Params_SynapseABMinus_dd,
+          CN_ParamNames_SynapseAB_dd,
+          CN_ParamSyms_SynapseAB_dd,
+          CN_Vars_SynapseAB,
+          CN_VarNames_SynapseAB,
+          CN_VarSyms_SynapseAB,
           "ABMinus",
           "ABMinus_pp",
           "Alpha-Beta synapse w/out (1-S) term"
@@ -289,9 +288,9 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
         { UT_HOSTED | UT_TGTISRATE | UT__STUB,  // YT_ABMINS_DR
           5, 1,
           NULL,          NULL,          NULL,
-          __CN_Vars_SynapseAB,
-          __CN_VarNames_SynapseAB,
-          __CN_VarSyms_SynapseAB,
+          CN_Vars_SynapseAB,
+          CN_VarNames_SynapseAB,
+          CN_VarSyms_SynapseAB,
           "ABMinus",
           "ABMinus_pt",
           "Alpha-Beta synapse w/out (1-S) term (phasic->tonic)"
@@ -300,9 +299,9 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
         { UT_HOSTED | UT_SRCISRATE | UT__STUB,  // YT_ABMINS_RD
           5, 1,
           NULL,          NULL,          NULL,
-          __CN_Vars_SynapseAB,
-          __CN_VarNames_SynapseAB,
-          __CN_VarSyms_SynapseAB,
+          CN_Vars_SynapseAB,
+          CN_VarNames_SynapseAB,
+          CN_VarSyms_SynapseAB,
           "ABMinus",
           "ABMinus_tp",
           "Alpha-Beta synapse w/out (1-S) term (tonic->phasic)"
@@ -311,9 +310,9 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
         { UT_HOSTED | UT_SRCISRATE | UT_TGTISRATE | UT__STUB,  // YT_ABMINS_RR
           5, 1,
           NULL,          NULL,          NULL,
-          __CN_Vars_SynapseAB,
-          __CN_VarNames_SynapseAB,
-          __CN_VarSyms_SynapseAB,
+          CN_Vars_SynapseAB,
+          CN_VarNames_SynapseAB,
+          CN_VarSyms_SynapseAB,
           "ABMinus",
           "ABMinus_tt",
           "Alpha-Beta synapse w/out (1-S) term (tonic->tonic)"
@@ -322,9 +321,9 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
         { UT_HOSTED | UT_MULTIPLEXING | UT__STUB,  // YT_MXABMINUS_DD
           5, 1,
           NULL,          NULL,          NULL,
-          __CN_Vars_SynapseAB,
-          __CN_VarNames_SynapseAB,
-          __CN_VarSyms_SynapseAB,
+          CN_Vars_SynapseAB,
+          CN_VarNames_SynapseAB,
+          CN_VarSyms_SynapseAB,
           "ABMinus",
           "ABMinus_Mx_pp",
           "Multiplexing Alpha-Beta w/out (1-S) synapse for use with durationless units as source (phasic->phasic)"
@@ -333,9 +332,9 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
         { UT_HOSTED | UT_TGTISRATE | UT_MULTIPLEXING | UT__STUB,  // YT_MXABMINUS_DR
           5, 1,
           NULL,          NULL,          NULL,
-          __CN_Vars_SynapseAB,
-          __CN_VarNames_SynapseAB,
-          __CN_VarSyms_SynapseAB,
+          CN_Vars_SynapseAB,
+          CN_VarNames_SynapseAB,
+          CN_VarSyms_SynapseAB,
           "ABMinus",
           "ABMinus_Mx_pt",
           "Multiplexing Alpha-Beta w/out (1-S) synapse for use with durationless units as source (phasic->tonic)"
@@ -344,12 +343,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
 
         { UT_HOSTED,  // YT_RALL_DD
           3, 2,
-          __CN_Params_SynapseRall_dd,
-          __CN_ParamNames_SynapseRall_dd,
-          __CN_ParamSyms_SynapseRall_dd,
-          __CN_Vars_SynapseRall,
-          __CN_VarNames_SynapseRall,
-          __CN_VarSyms_SynapseRall,
+          CN_Params_SynapseRall_dd,
+          CN_ParamNames_SynapseRall_dd,
+          CN_ParamSyms_SynapseRall_dd,
+          CN_Vars_SynapseRall,
+          CN_VarNames_SynapseRall,
+          CN_VarSyms_SynapseRall,
           "Rall",
           "Rall_pp",
           "Rall synapse (Rall, 1967)"
@@ -358,9 +357,9 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
         { UT_HOSTED | UT_TGTISRATE | UT__STUB,  // YT_RALL_DR
           3, 2,
           NULL,          NULL,          NULL,
-          __CN_Vars_SynapseRall,
-          __CN_VarNames_SynapseRall,
-          __CN_VarSyms_SynapseRall,
+          CN_Vars_SynapseRall,
+          CN_VarNames_SynapseRall,
+          CN_VarSyms_SynapseRall,
           "Rall",
           "Rall_pt",
           "Rall synapse (Rall, 1967) (phasic->tonic)"
@@ -369,9 +368,9 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
         { UT_HOSTED | UT_SRCISRATE | UT__STUB,  // YT_RALL_RD
           3, 2,
           NULL,          NULL,          NULL,
-          __CN_Vars_SynapseRall,
-          __CN_VarNames_SynapseRall,
-          __CN_VarSyms_SynapseRall,
+          CN_Vars_SynapseRall,
+          CN_VarNames_SynapseRall,
+          CN_VarSyms_SynapseRall,
           "Rall",
           "Rall_tp",
           "Rall synapse (tonic->phasic)"
@@ -380,9 +379,9 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
         { UT_HOSTED | UT_SRCISRATE | UT_TGTISRATE | UT__STUB,  // YT_RALL_RR
           3, 2,
           NULL,          NULL,          NULL,
-          __CN_Vars_SynapseRall,
-          __CN_VarNames_SynapseRall,
-          __CN_VarSyms_SynapseRall,
+          CN_Vars_SynapseRall,
+          CN_VarNames_SynapseRall,
+          CN_VarSyms_SynapseRall,
           "Rall",
           "Rall_tt",
           "Rall synapse (tonic->tonic)"
@@ -391,9 +390,9 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
         { UT_HOSTED | UT_MULTIPLEXING | UT__STUB,  // YT_MXRALL_DD
           3, 2,
           NULL,          NULL,          NULL,
-          __CN_Vars_SynapseRall,
-          __CN_VarNames_SynapseRall,
-          __CN_VarSyms_SynapseRall,
+          CN_Vars_SynapseRall,
+          CN_VarNames_SynapseRall,
+          CN_VarSyms_SynapseRall,
           "Rall",
           "Rall_Mx_pp",
           "Rall synapse for use with durationless units as source (phasic->phasic)"
@@ -402,9 +401,9 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
         { UT_HOSTED | UT_TGTISRATE | UT_MULTIPLEXING | UT__STUB,  // YT_MXRALL_DR
           3, 2,
           NULL,          NULL,          NULL,
-          __CN_Vars_SynapseRall,
-          __CN_VarNames_SynapseRall,
-          __CN_VarSyms_SynapseRall,
+          CN_Vars_SynapseRall,
+          CN_VarNames_SynapseRall,
+          CN_VarSyms_SynapseRall,
           "Rall",
           "Rall_Mx_pt",
           "Rall synapse for use with durationless units as source (phasic->tonic)"
@@ -413,12 +412,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
 
         { UT_DDTSET,  // YT_MAP
           3, 1,
-          __CN_Params_SynapseMap,
-          __CN_ParamNames_SynapseMap,
-          __CN_ParamSyms_SynapseMap,
-          __CN_Vars_SynapseAB,
-          __CN_VarNames_SynapseAB,
-          __CN_VarSyms_SynapseAB,
+          CN_Params_SynapseMap,
+          CN_ParamNames_SynapseMap,
+          CN_ParamSyms_SynapseMap,
+          CN_Vars_SynapseAB,
+          CN_VarNames_SynapseAB,
+          CN_VarSyms_SynapseAB,
           "Map",
           "Map",
           "Map synapse"
@@ -426,12 +425,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
 
         { UT_DDTSET | UT_MULTIPLEXING,  // YT_MXMAP
           3, 1,
-          __CN_Params_SynapseMap,
-          __CN_ParamNames_SynapseMap,
-          __CN_ParamSyms_SynapseMap,
-          __CN_Vars_SynapseAB,
-          __CN_VarNames_SynapseAB,
-          __CN_VarSyms_SynapseAB,
+          CN_Params_SynapseMap,
+          CN_ParamNames_SynapseMap,
+          CN_ParamSyms_SynapseMap,
+          CN_Vars_SynapseAB,
+          CN_VarNames_SynapseAB,
+          CN_VarSyms_SynapseAB,
           "Map",
           "Map_Mx",
           "Multiplexing Map synapse"
@@ -470,53 +469,51 @@ cnmodel_dump_available_units()
         using cnrun::stilton::str::double_dot_aligned_s;
 
         size_t u, p;
-        cout << "\n===== Neurons:\n";
+        printf( "\n===== Neurons:\n");
         for ( u = NT_FIRST; u <= NT_LAST; ++u ) {
-                SCNDescriptor &U = __CNUDT[u];
+                const auto &U = __CNUDT[u];
                 if ( U.traits & UT__STUB )
                         continue;
-                printf( "--- [%s]: %s\nParameters:\n",
+                printf( "* [%s] %s:\n",
                         U.species, U.description);
                 for ( p = 0; p < U.pno; ++p ) {
-                        printf( "%4zu: %-5s\t= %s  %s\n",
-                                p, U.stock_param_syms[p],
+                        printf( "   %-12s %s  %s\n",
+                                U.stock_param_syms[p],
                                 double_dot_aligned_s(
                                         U.stock_param_values[p], 4, 8).c_str(),
                                 U.stock_param_names[p]);
                 }
-                printf( "Variables:\n");
                 for ( p = 0; p < U.vno; ++p ) {
-                        printf( "%4zu: %-5s\t= %s  %s\n",
-                                p, U.stock_var_syms[p],
+                        printf( "v: %-12s %s  %s\n",
+                                U.stock_var_syms[p],
                                 double_dot_aligned_s( U.stock_var_values[p], 4, 8).c_str(),
                                 U.stock_var_names[p]);
                 }
-                cout << endl;
+                printf( "\n");
         }
-        cout << "\n===== Synapses:\n";
+        printf( "\n===== Synapses:\n");
         for ( u = YT_FIRST; u <= YT_LAST; ++u ) {
                 SCNDescriptor &U = __CNUDT[u];
                 if ( U.traits & UT__STUB )
                         continue;
-                printf( "--- [%s]: %s\nParameters:\n",
+                printf( "* [%s] %s:\n",
                         U.species, U.description);
                 for ( p = 0; p < U.pno; ++p ) {
-                        printf( "%4zu: %-5s\t= %s  %s\n",
-                                p, U.stock_param_syms[p],
+                        printf( "   %-12s %s  %s\n",
+                                U.stock_param_syms[p],
                                 double_dot_aligned_s(
                                         U.stock_param_values[p], 4, 8).c_str(),
                                 U.stock_param_names[p]);
                 }
-                cout << "Variables:\n";
                 for ( p = 0; p < U.vno; ++p ) {
-                        printf( "%4zu: %-5s\t= %s  %s\n",
-                                p, U.stock_var_syms[p],
+                        printf( "v: %-12s %s  %s\n",
+                                U.stock_var_syms[p],
                                 double_dot_aligned_s( U.stock_var_values[p], 4, 8).c_str(),
                                 U.stock_var_names[p]);
                 }
-                cout << endl;
+                printf( "\n");
         }
-        cout << endl;
+        printf( "\n");
 }
 
 // Local Variables:
diff --git a/upstream/src/libcnrun/types.hh b/upstream/src/libcnrun/types.hh
index 479d59e..084ce38 100644
--- a/upstream/src/libcnrun/types.hh
+++ b/upstream/src/libcnrun/types.hh
@@ -146,146 +146,146 @@ void cnmodel_dump_available_units();
 
 
 
-extern const double __CN_Params_NeuronHH_d[];
-extern const char* const __CN_ParamNames_NeuronHH_d[];
-extern const char* const __CN_ParamSyms_NeuronHH_d[];
-extern const double __CN_Vars_NeuronHH_d[];
-extern const char* const __CN_VarNames_NeuronHH_d[];
-extern const char* const __CN_VarSyms_NeuronHH_d[];
+extern const double CN_Params_NeuronHH_d[];
+extern const char* const CN_ParamNames_NeuronHH_d[];
+extern const char* const CN_ParamSyms_NeuronHH_d[];
+extern const double CN_Vars_NeuronHH_d[];
+extern const char* const CN_VarNames_NeuronHH_d[];
+extern const char* const CN_VarSyms_NeuronHH_d[];
 
-extern const double __CN_Params_NeuronHH2_d[];
-extern const char* const __CN_ParamNames_NeuronHH2_d[];
-extern const char* const __CN_ParamSyms_NeuronHH2_d[];
-extern const double __CN_Vars_NeuronHH2_d[];
+extern const double CN_Params_NeuronHH2_d[];
+extern const char* const CN_ParamNames_NeuronHH2_d[];
+extern const char* const CN_ParamSyms_NeuronHH2_d[];
+extern const double CN_Vars_NeuronHH2_d[];
 
 
-extern const double __CN_Params_NeuronHH_r[];
-extern const char* const __CN_ParamNames_NeuronHH_r[];
-extern const char* const __CN_ParamSyms_NeuronHH_r[];
-extern const double __CN_Vars_NeuronHH_r[];
-extern const char* const __CN_VarNames_NeuronHH_r[];
-extern const char* const __CN_VarSyms_NeuronHH_r[];
+extern const double CN_Params_NeuronHH_r[];
+extern const char* const CN_ParamNames_NeuronHH_r[];
+extern const char* const CN_ParamSyms_NeuronHH_r[];
+extern const double CN_Vars_NeuronHH_r[];
+extern const char* const CN_VarNames_NeuronHH_r[];
+extern const char* const CN_VarSyms_NeuronHH_r[];
 
 
-extern const double __CN_Params_NeuronDotPulse[];
-extern const char* const __CN_ParamNames_NeuronDotPulse[];
-extern const char* const __CN_ParamSyms_NeuronDotPulse[];
-extern const double __CN_Vars_NeuronDotPulse[];
-extern const char* const __CN_VarNames_NeuronDotPulse[];
-extern const char* const __CN_VarSyms_NeuronDotPulse[];
+extern const double CN_Params_NeuronDotPulse[];
+extern const char* const CN_ParamNames_NeuronDotPulse[];
+extern const char* const CN_ParamSyms_NeuronDotPulse[];
+extern const double CN_Vars_NeuronDotPulse[];
+extern const char* const CN_VarNames_NeuronDotPulse[];
+extern const char* const CN_VarSyms_NeuronDotPulse[];
 
 
 //#ifdef CN_WANT_MORE_NEURONS
-extern const double __CN_Params_NeuronEC_d[];
-extern const char* const __CN_ParamNames_NeuronEC_d[];
-extern const char* const __CN_ParamSyms_NeuronEC_d[];
-extern const double __CN_Vars_NeuronEC_d[];
-extern const char* const __CN_VarNames_NeuronEC_d[];
-extern const char* const __CN_VarSyms_NeuronEC_d[];
-
-
-extern const double __CN_Params_NeuronECA_d[];
-extern const char* const __CN_ParamNames_NeuronECA_d[];
-extern const char* const __CN_ParamSyms_NeuronECA_d[];
-extern const double __CN_Vars_NeuronECA_d[];
-extern const char* const __CN_VarNames_NeuronECA_d[];
-extern const char* const __CN_VarSyms_NeuronECA_d[];
+extern const double CN_Params_NeuronEC_d[];
+extern const char* const CN_ParamNames_NeuronEC_d[];
+extern const char* const CN_ParamSyms_NeuronEC_d[];
+extern const double CN_Vars_NeuronEC_d[];
+extern const char* const CN_VarNames_NeuronEC_d[];
+extern const char* const CN_VarSyms_NeuronEC_d[];
+
+
+extern const double CN_Params_NeuronECA_d[];
+extern const char* const CN_ParamNames_NeuronECA_d[];
+extern const char* const CN_ParamSyms_NeuronECA_d[];
+extern const double CN_Vars_NeuronECA_d[];
+extern const char* const CN_VarNames_NeuronECA_d[];
+extern const char* const CN_VarSyms_NeuronECA_d[];
 //#endif
 
-extern const double __CN_Params_NeuronMap[];
-extern const char* const __CN_ParamNames_NeuronMap[];
-extern const char* const __CN_ParamSyms_NeuronMap[];
-extern const double __CN_Vars_NeuronMap[];
-extern const char* const __CN_VarNames_NeuronMap[];
-extern const char* const __CN_VarSyms_NeuronMap[];
+extern const double CN_Params_NeuronMap[];
+extern const char* const CN_ParamNames_NeuronMap[];
+extern const char* const CN_ParamSyms_NeuronMap[];
+extern const double CN_Vars_NeuronMap[];
+extern const char* const CN_VarNames_NeuronMap[];
+extern const char* const CN_VarSyms_NeuronMap[];
 
 
-extern const double __CN_Params_OscillatorPoissonDot[];
-extern const char* const __CN_ParamNames_OscillatorPoissonDot[];
-extern const char* const __CN_ParamSyms_OscillatorPoissonDot[];
-extern const double __CN_Vars_OscillatorPoissonDot[];
-extern const char* const __CN_VarNames_OscillatorPoissonDot[];
-extern const char* const __CN_VarSyms_OscillatorPoissonDot[];
+extern const double CN_Params_OscillatorPoissonDot[];
+extern const char* const CN_ParamNames_OscillatorPoissonDot[];
+extern const char* const CN_ParamSyms_OscillatorPoissonDot[];
+extern const double CN_Vars_OscillatorPoissonDot[];
+extern const char* const CN_VarNames_OscillatorPoissonDot[];
+extern const char* const CN_VarSyms_OscillatorPoissonDot[];
 
-extern const double __CN_Params_OscillatorPoisson[];
-extern const char* const __CN_ParamNames_OscillatorPoisson[];
-extern const char* const __CN_ParamSyms_OscillatorPoisson[];
-extern const double __CN_Vars_OscillatorPoisson[];
-extern const char* const __CN_VarNames_OscillatorPoisson[];
-extern const char* const __CN_VarSyms_OscillatorPoisson[];
+extern const double CN_Params_OscillatorPoisson[];
+extern const char* const CN_ParamNames_OscillatorPoisson[];
+extern const char* const CN_ParamSyms_OscillatorPoisson[];
+extern const double CN_Vars_OscillatorPoisson[];
+extern const char* const CN_VarNames_OscillatorPoisson[];
+extern const char* const CN_VarSyms_OscillatorPoisson[];
 
 
 /*
-extern const double __CN_Params_OscillatorLV[];
-extern const char* const __CN_ParamNames_OscillatorLV[];
-extern const char* const __CN_ParamSyms_OscillatorLV[];
-extern const double __CN_Vars_OscillatorLV[];
-extern const char* const __CN_VarNames_OscillatorLV[];
-extern const char* const __CN_VarSyms_OscillatorLV[];
+extern const double CN_Params_OscillatorLV[];
+extern const char* const CN_ParamNames_OscillatorLV[];
+extern const char* const CN_ParamSyms_OscillatorLV[];
+extern const double CN_Vars_OscillatorLV[];
+extern const char* const CN_VarNames_OscillatorLV[];
+extern const char* const CN_VarSyms_OscillatorLV[];
 */
 
-extern const double __CN_Params_OscillatorColpitts[];
-extern const char* const __CN_ParamNames_OscillatorColpitts[];
-extern const char* const __CN_ParamSyms_OscillatorColpitts[];
-extern const double __CN_Vars_OscillatorColpitts[];
-extern const char* const __CN_VarNames_OscillatorColpitts[];
-extern const char* const __CN_VarSyms_OscillatorColpitts[];
+extern const double CN_Params_OscillatorColpitts[];
+extern const char* const CN_ParamNames_OscillatorColpitts[];
+extern const char* const CN_ParamSyms_OscillatorColpitts[];
+extern const double CN_Vars_OscillatorColpitts[];
+extern const char* const CN_VarNames_OscillatorColpitts[];
+extern const char* const CN_VarSyms_OscillatorColpitts[];
 
 
-extern const double __CN_Params_OscillatorVdPol[];
-extern const char* const __CN_ParamNames_OscillatorVdPol[];
-extern const char* const __CN_ParamSyms_OscillatorVdPol[];
-extern const double __CN_Vars_OscillatorVdPol[];
-extern const char* const __CN_VarNames_OscillatorVdPol[];
-extern const char* const __CN_VarSyms_OscillatorVdPol[];
+extern const double CN_Params_OscillatorVdPol[];
+extern const char* const CN_ParamNames_OscillatorVdPol[];
+extern const char* const CN_ParamSyms_OscillatorVdPol[];
+extern const double CN_Vars_OscillatorVdPol[];
+extern const char* const CN_VarNames_OscillatorVdPol[];
+extern const char* const CN_VarSyms_OscillatorVdPol[];
 //#endif
 
 
 
-extern const double __CN_Params_SynapseAB_dd[];
-extern const char* const __CN_ParamNames_SynapseAB_dd[];
-extern const char* const __CN_ParamSyms_SynapseAB_dd[];
-extern const double __CN_Vars_SynapseAB[];
-extern const char* const __CN_VarNames_SynapseAB[];
-extern const char* const __CN_VarSyms_SynapseAB[];
+extern const double CN_Params_SynapseAB_dd[];
+extern const char* const CN_ParamNames_SynapseAB_dd[];
+extern const char* const CN_ParamSyms_SynapseAB_dd[];
+extern const double CN_Vars_SynapseAB[];
+extern const char* const CN_VarNames_SynapseAB[];
+extern const char* const CN_VarSyms_SynapseAB[];
 
-extern const double __CN_Params_SynapseABMinus_dd[];
+extern const double CN_Params_SynapseABMinus_dd[];
 
-extern const double __CN_Params_SynapseMxAB_dd[];
+extern const double CN_Params_SynapseMxAB_dd[];
 
-extern const char* const __CN_ParamNames_SynapseAB_dr[];
-extern const char* const __CN_ParamSyms_SynapseAB_dr[];
+extern const char* const CN_ParamNames_SynapseAB_dr[];
+extern const char* const CN_ParamSyms_SynapseAB_dr[];
 
-extern const double __CN_Params_SynapseMxAB_dr[];
+extern const double CN_Params_SynapseMxAB_dr[];
 
-extern const double __CN_Params_SynapseAB_rr[];
-extern const char* const __CN_ParamNames_SynapseAB_rr[];
-extern const char* const __CN_ParamSyms_SynapseAB_rr[];
+extern const double CN_Params_SynapseAB_rr[];
+extern const char* const CN_ParamNames_SynapseAB_rr[];
+extern const char* const CN_ParamSyms_SynapseAB_rr[];
 
 
-extern const double __CN_Params_SynapseRall_dd[];
-extern const char* const __CN_ParamNames_SynapseRall_dd[];
-extern const char* const __CN_ParamSyms_SynapseRall_dd[];
-extern const double __CN_Vars_SynapseRall[];
-extern const char* const __CN_VarNames_SynapseRall[];
-extern const char* const __CN_VarSyms_SynapseRall[];
+extern const double CN_Params_SynapseRall_dd[];
+extern const char* const CN_ParamNames_SynapseRall_dd[];
+extern const char* const CN_ParamSyms_SynapseRall_dd[];
+extern const double CN_Vars_SynapseRall[];
+extern const char* const CN_VarNames_SynapseRall[];
+extern const char* const CN_VarSyms_SynapseRall[];
 
 
-extern const double __CN_Params_SynapseMap[];
-extern const char* const __CN_ParamNames_SynapseMap[];
-extern const char* const __CN_ParamSyms_SynapseMap[];
+extern const double CN_Params_SynapseMap[];
+extern const char* const CN_ParamNames_SynapseMap[];
+extern const char* const CN_ParamSyms_SynapseMap[];
 
-#define __CN_PU_CONDUCTANCE "\316\274S/cm\302\262"
-#define __CN_PU_RESISTANCE "M\316\251"
-#define __CN_PU_POTENTIAL "mV"
-#define __CN_PU_VOLTAGE "mV"
-#define __CN_PU_CURRENT "nA"
-#define __CN_PU_CAPACITY_DENSITY "\316\274F/cm\302\262"
-#define __CN_PU_TIME "msec"
-#define __CN_PU_TIME_MSEC "msec"
-#define __CN_PU_RATE "1/msec"
-#define __CN_PU_FREQUENCY "Hz"
-#define __CN_PU_TIME_SEC "sec"
+#define CN_PU_CONDUCTANCE "μS/cm²"
+#define CN_PU_RESISTANCE "MΩ"
+#define CN_PU_POTENTIAL "mV"
+#define CN_PU_VOLTAGE "mV"
+#define CN_PU_CURRENT "nA"
+#define CN_PU_CAPACITY_DENSITY "μF/cm²"
+#define CN_PU_TIME "msec"
+#define CN_PU_TIME_MSEC "msec"
+#define CN_PU_RATE "1/msec"
+#define CN_PU_FREQUENCY "Hz"
+#define CN_PU_TIME_SEC "sec"
 
 }
 #endif
diff --git a/upstream/src/libstilton/Makefile.am b/upstream/src/libstilton/Makefile.am
index 5fa22b1..c8c9aad 100644
--- a/upstream/src/libstilton/Makefile.am
+++ b/upstream/src/libstilton/Makefile.am
@@ -1,9 +1,10 @@
 include $(top_srcdir)/src/Common.mk
+AM_CXXFLAGS += -shared -fPIC
 
-pkglib_LTLIBRARIES = \
-	libstilton.la
+noinst_LIBRARIES = \
+	liba.a
 
-libstilton_la_SOURCES = \
+liba_a_SOURCES = \
 	alg.hh \
 	containers.hh \
 	lang.hh \
@@ -11,7 +12,11 @@ libstilton_la_SOURCES = \
 	string.hh \
 	libstilton.cc
 
-libstilton_la_LDFLAGS = \
-	-avoid-version \
-	-rpath $(libdir)/$(PACKAGE) \
-	-shared -module
+stiltonincdir = $(includedir)/libstilton
+
+stiltoninc_HEADERS = \
+	alg.hh \
+	containers.hh \
+	lang.hh \
+	misc.hh \
+	string.hh
diff --git a/upstream/src/libstilton/libstilton.cc b/upstream/src/libstilton/libstilton.cc
index 6dba1ef..06b7e60 100644
--- a/upstream/src/libstilton/libstilton.cc
+++ b/upstream/src/libstilton/libstilton.cc
@@ -265,7 +265,7 @@ dhms_colon( double seconds, int dd)
 
 
 
-inline namespace {
+namespace {
 int
 n_frac_digits( double v)
 {
@@ -281,43 +281,46 @@ n_frac_digits( double v)
 
 string
 cnrun::stilton::str::
-double_dot_aligned_s( double val, int int_width, int frac_width)
+double_dot_aligned_s( double val, const size_t int_width, const size_t frac_width)
 {
-        char buf[40];
+        string ret;
 
-        if ( int_width + frac_width > 39 )
-                int_width = 8, frac_width = 8;
-
-        val = round(val * pow(10.,frac_width)) / pow(10.,frac_width);
+        val = round(val * pow(10., frac_width)) / pow(10., frac_width);
 
         double  intval;
         double  fracval = modf( val, &intval);
         int     frac_digits = n_frac_digits( val);
         int     frac_pad = frac_width - frac_digits;
-        if ( frac_pad < 1 )
-                frac_pad = 1;
+        if ( frac_pad < 1 ) {
+                frac_digits = frac_width;
+                frac_pad = 0;
+        }
 
         if ( frac_digits )
                 if ( (int)intval )
-                        snprintf( buf, 40, "% *d.%0*ld%*s",
-                                  int_width, int(intval),
-                                  frac_digits, (long)round(pow(10., frac_digits) * fabs( fracval)),
-                                  frac_pad, " ");
+                        ret = sasprintf(
+                                "% *d.%0*ld%*s",
+                                int(int_width), int(intval),
+                                frac_digits, (long)round(pow(10., frac_digits) * fabs( fracval)),
+                                frac_pad, " ");
                 else
-                        snprintf( buf, 40, "%*s.%0*ld%*s",
-                                  int_width, " ",
-                                  frac_digits, (long)round(pow(10., frac_digits) * fabs( fracval)),
-                                  frac_pad, " ");
+                        ret = sasprintf(
+                                "%*s.%0*ld%*s",
+                                int(int_width), " ",
+                                frac_digits, (long)round(pow(10., frac_digits) * fabs( fracval)),
+                                frac_pad, " ");
 
         else
                 if ( (int)intval )
-                        snprintf( buf, 40, "%*d.%-*s",
-                                  int_width, int(intval), frac_width, " ");
+                        ret = sasprintf(
+                                "%*d.%-*s",
+                                int(int_width), int(intval), int(frac_width), " ");
                 else
-                        snprintf( buf, 40, "%-*s0%-*s",
-                                  int_width, " ", frac_width, " ");
+                        ret = sasprintf(
+                                "%-*s0%-*s",
+                                int(int_width), " ", int(frac_width), " ");
 
-        return {buf};
+        return move(ret);
 }
 
 // Local Variables:
diff --git a/upstream/src/libstilton/string.hh b/upstream/src/libstilton/string.hh
index 82f3171..95032a8 100644
--- a/upstream/src/libstilton/string.hh
+++ b/upstream/src/libstilton/string.hh
@@ -103,7 +103,7 @@ string dhms_colon( double seconds, int decimal_digits = 0) __attribute__ ((pure)
 
 
 string
-double_dot_aligned_s( double val, int int_width = 8, int frac_width = 8);
+double_dot_aligned_s( double val, size_t int_width = 8, size_t frac_width = 8);
 
 
 }
diff --git a/upstream/src/libcnrun-lua/.gitignore b/upstream/src/lua-cnrun/.gitignore
similarity index 100%
rename from upstream/src/libcnrun-lua/.gitignore
rename to upstream/src/lua-cnrun/.gitignore
diff --git a/upstream/src/lua-cnrun/Makefile.am b/upstream/src/lua-cnrun/Makefile.am
new file mode 100644
index 0000000..eca1f01
--- /dev/null
+++ b/upstream/src/lua-cnrun/Makefile.am
@@ -0,0 +1,25 @@
+include $(top_srcdir)/src/Common.mk
+AM_CXXFLAGS += $(LUA_INCLUDE)
+
+pkglib_LTLIBRARIES = \
+	libcnrun-lua.la
+libcnrun_lua_la_SOURCES = \
+	commands.cc cnhost.hh
+libcnrun_lua_la_LIBADD = \
+	../libcnrun/libcnrun.la \
+	$(LIBCN_LIBS) \
+	$(LUA_LIB)
+libcnrun_lua_la_LDFLAGS = \
+	-shared -avoid-version \
+	-module
+
+# and move it to where lua can find it via reqiure("cnrun");
+# no, link is better, so that lintian finds libcnrun-lua.so in its
+# usual location in /usr/lib
+install-exec-hook:
+	$(MKDIR_P) $(DESTDIR)/$(luaexecdir)
+	mv $(DESTDIR)/$(libdir)/$(PACKAGE)/libcnrun-lua.so \
+		$(DESTDIR)/$(luaexecdir)/cnrun.so
+	rm -rf $(DESTDIR)/$(libdir)/$(PACKAGE)
+uninstall-hook:
+	rm -f $(DESTDIR)/$(luaexecdir)/cnrun.so
diff --git a/upstream/src/libcnrun-lua/cnhost.hh b/upstream/src/lua-cnrun/cnhost.hh
similarity index 100%
rename from upstream/src/libcnrun-lua/cnhost.hh
rename to upstream/src/lua-cnrun/cnhost.hh
diff --git a/upstream/src/libcnrun-lua/commands.cc b/upstream/src/lua-cnrun/commands.cc
similarity index 90%
rename from upstream/src/libcnrun-lua/commands.cc
rename to upstream/src/lua-cnrun/commands.cc
index a03f5fa..c29edac 100644
--- a/upstream/src/libcnrun-lua/commands.cc
+++ b/upstream/src/lua-cnrun/commands.cc
@@ -91,11 +91,22 @@ int check_signature( lua_State* L, const char* fun, const char* sig)
 // here be the commands:
 namespace {
 
-#define INTRO_CHECK_SIG(sig) \
+#define INTRO_CHECK_SIG(sig)                            \
         if ( check_signature( L, __FUNCTION__, sig) )   \
                 return TWO_ARGS_FOR_ERROR;
 
-int cn_get_context( lua_State *L)
+// the only command not requiring or dealing with context:
+int dump_available_units( lua_State *L)
+{
+        INTRO_CHECK_SIG("");
+        cnmodel_dump_available_units();
+        return  lua_pushinteger( L, 1),
+                lua_pushstring( L, "fafa"),
+                2;
+}
+
+
+int get_context( lua_State *L)
 {
         INTRO_CHECK_SIG("");
 
@@ -110,7 +121,7 @@ int cn_get_context( lua_State *L)
         INTRO_CHECK_SIG(sig) \
         auto& C = *(CHost*)lua_topointer( L, 1);
 
-int cn_drop_context( lua_State *L)
+int drop_context( lua_State *L)
 {
         INTRO_WITH_CONTEXT("p");
 
@@ -136,7 +147,7 @@ int cn_drop_context( lua_State *L)
                 lua_pushnumber( L, v), \
                 2;
 
-int cn_new_model( lua_State *L)
+int new_model( lua_State *L)
 {
         INTRO_WITH_MODEL_NAME("ps");
 
@@ -165,7 +176,7 @@ int cn_new_model( lua_State *L)
 }
 
 
-int cn_delete_model( lua_State *L)
+int delete_model( lua_State *L)
 {
         INTRO_WITH_MODEL_NAME("ps");
 
@@ -175,7 +186,7 @@ int cn_delete_model( lua_State *L)
 }
 
 
-int cn_list_models( lua_State *L)
+int list_models( lua_State *L)
 {
         INTRO_WITH_CONTEXT("p");
 
@@ -196,7 +207,7 @@ int cn_list_models( lua_State *L)
                         __FUNCTION__, model_name); \
         auto& M = *C.get_model(model_name);
 
-int cn_import_nml( lua_State *L)
+int import_nml( lua_State *L)
 {
         INTRO_WITH_MODEL("pss");
 
@@ -215,7 +226,7 @@ int cn_import_nml( lua_State *L)
 }
 
 
-int cn_export_nml( lua_State *L)
+int export_nml( lua_State *L)
 {
         INTRO_WITH_MODEL("pss");
 
@@ -231,7 +242,7 @@ int cn_export_nml( lua_State *L)
 }
 
 
-int cn_reset_model( lua_State *L)
+int reset_model( lua_State *L)
 {
         INTRO_WITH_MODEL("ps");
 
@@ -242,7 +253,7 @@ int cn_reset_model( lua_State *L)
 }
 
 
-int cn_cull_deaf_synapses( lua_State *L)
+int cull_deaf_synapses( lua_State *L)
 {
         INTRO_WITH_MODEL("ps");
 
@@ -252,7 +263,7 @@ int cn_cull_deaf_synapses( lua_State *L)
 }
 
 
-int cn_describe_model( lua_State *L)
+int describe_model( lua_State *L)
 {
         INTRO_WITH_MODEL("ps");
 
@@ -264,7 +275,7 @@ int cn_describe_model( lua_State *L)
 }
 
 
-int cn_get_model_parameter( lua_State *L)
+int get_model_parameter( lua_State *L)
 {
         INTRO_WITH_MODEL("pss");
 
@@ -307,7 +318,7 @@ int cn_get_model_parameter( lua_State *L)
 }
 
 
-int cn_set_model_parameter( lua_State *L)
+int set_model_parameter( lua_State *L)
 {
         INTRO_WITH_MODEL("psss");
 
@@ -384,7 +395,7 @@ int cn_set_model_parameter( lua_State *L)
 }
 
 
-int cn_advance( lua_State *L)
+int advance( lua_State *L)
 {
         INTRO_WITH_MODEL("psg");
 
@@ -403,7 +414,7 @@ int cn_advance( lua_State *L)
 }
 
 
-int cn_advance_until( lua_State *L)
+int advance_until( lua_State *L)
 {
         INTRO_WITH_MODEL("pss");
 
@@ -423,7 +434,7 @@ int cn_advance_until( lua_State *L)
 
 // ----------------------------------------
 
-int cn_new_neuron( lua_State *L)
+int new_neuron( lua_State *L)
 {
         INTRO_WITH_MODEL("psss");
 
@@ -441,7 +452,7 @@ int cn_new_neuron( lua_State *L)
 }
 
 
-int cn_new_synapse( lua_State *L)
+int new_synapse( lua_State *L)
 {
         INTRO_WITH_MODEL("pssssg");
 
@@ -463,7 +474,7 @@ int cn_new_synapse( lua_State *L)
 }
 
 
-int cn_get_unit_properties( lua_State *L)
+int get_unit_properties( lua_State *L)
 {
         INTRO_WITH_MODEL("pss");
 
@@ -486,7 +497,7 @@ int cn_get_unit_properties( lua_State *L)
 }
 
 
-int cn_get_unit_parameter( lua_State *L)
+int get_unit_parameter( lua_State *L)
 {
         INTRO_WITH_MODEL("psss");
 
@@ -510,7 +521,7 @@ int cn_get_unit_parameter( lua_State *L)
 }
 
 
-int cn_set_unit_parameter( lua_State *L)
+int set_unit_parameter( lua_State *L)
 {
         INTRO_WITH_MODEL("psssg");
 
@@ -536,7 +547,7 @@ int cn_set_unit_parameter( lua_State *L)
 }
 
 
-int cn_get_unit_vars( lua_State *L)
+int get_unit_vars( lua_State *L)
 {
         INTRO_WITH_MODEL("pss");
 
@@ -555,7 +566,7 @@ int cn_get_unit_vars( lua_State *L)
 }
 
 
-int cn_reset_unit( lua_State *L)
+int reset_unit( lua_State *L)
 {
         INTRO_WITH_MODEL("pss");
 
@@ -575,7 +586,7 @@ int cn_reset_unit( lua_State *L)
 
 // ----------------------------------------
 
-int cn_get_units_matching( lua_State *L)
+int get_units_matching( lua_State *L)
 {
         INTRO_WITH_MODEL("pss");
 
@@ -589,7 +600,7 @@ int cn_get_units_matching( lua_State *L)
 }
 
 
-int cn_get_units_of_type( lua_State *L)
+int get_units_of_type( lua_State *L)
 {
         INTRO_WITH_MODEL("pss");
 
@@ -604,7 +615,7 @@ int cn_get_units_of_type( lua_State *L)
 }
 
 
-int cn_set_matching_neuron_parameter( lua_State *L)
+int set_matching_neuron_parameter( lua_State *L)
 {
         INTRO_WITH_MODEL("psssg");
 
@@ -623,7 +634,7 @@ int cn_set_matching_neuron_parameter( lua_State *L)
 }
 
 
-int cn_set_matching_synapse_parameter( lua_State *L)
+int set_matching_synapse_parameter( lua_State *L)
 {
         INTRO_WITH_MODEL("pssssg");
 
@@ -644,7 +655,7 @@ int cn_set_matching_synapse_parameter( lua_State *L)
 }
 
 
-int cn_revert_matching_unit_parameters( lua_State *L)
+int revert_matching_unit_parameters( lua_State *L)
 {
         INTRO_WITH_MODEL("pss");
 
@@ -661,7 +672,7 @@ int cn_revert_matching_unit_parameters( lua_State *L)
 }
 
 
-int cn_decimate( lua_State *L)
+int decimate( lua_State *L)
 {
         INTRO_WITH_MODEL("pssg");
 
@@ -683,7 +694,7 @@ int cn_decimate( lua_State *L)
 }
 
 
-int cn_putout( lua_State *L)
+int putout( lua_State *L)
 {
         INTRO_WITH_MODEL("pss");
 
@@ -701,7 +712,7 @@ int cn_putout( lua_State *L)
 
 // ----------------------------------------
 
-int cn_new_tape_source( lua_State *L)
+int new_tape_source( lua_State *L)
 {
         INTRO_WITH_MODEL("psssb");
 
@@ -736,7 +747,7 @@ int cn_new_tape_source( lua_State *L)
 }
 
 
-int cn_new_periodic_source( lua_State *L)
+int new_periodic_source( lua_State *L)
 {
         INTRO_WITH_MODEL("psssbg");
 
@@ -774,7 +785,7 @@ int cn_new_periodic_source( lua_State *L)
 }
 
 
-int cn_new_noise_source( lua_State *L)
+int new_noise_source( lua_State *L)
 {
         INTRO_WITH_MODEL("pssgggs");
 
@@ -811,7 +822,7 @@ int cn_new_noise_source( lua_State *L)
 }
 
 
-int cn_get_sources( lua_State *L)
+int get_sources( lua_State *L)
 {
         INTRO_WITH_MODEL("ps");
 
@@ -822,7 +833,7 @@ int cn_get_sources( lua_State *L)
 }
 
 
-int cn_connect_source( lua_State *L)
+int connect_source( lua_State *L)
 {
         INTRO_WITH_MODEL("pssss");
 
@@ -846,7 +857,7 @@ int cn_connect_source( lua_State *L)
 }
 
 
-int cn_disconnect_source( lua_State *L)
+int disconnect_source( lua_State *L)
 {
         INTRO_WITH_MODEL("pssss");
 
@@ -872,7 +883,7 @@ int cn_disconnect_source( lua_State *L)
 
 // ----------------------------------------
 
-int cn_start_listen( lua_State *L)
+int start_listen( lua_State *L)
 {
         INTRO_WITH_MODEL("pss");
 
@@ -893,7 +904,7 @@ int cn_start_listen( lua_State *L)
 }
 
 
-int cn_stop_listen( lua_State *L)
+int stop_listen( lua_State *L)
 {
         INTRO_WITH_MODEL("pss");
 
@@ -914,7 +925,7 @@ int cn_stop_listen( lua_State *L)
 }
 
 
-int cn_start_log_spikes( lua_State *L)
+int start_log_spikes( lua_State *L)
 {
         INTRO_WITH_MODEL("pss");
 
@@ -932,7 +943,7 @@ int cn_start_log_spikes( lua_State *L)
 }
 
 
-int cn_stop_log_spikes( lua_State *L)
+int stop_log_spikes( lua_State *L)
 {
         INTRO_WITH_MODEL("pss");
 
@@ -953,48 +964,49 @@ int cn_stop_log_spikes( lua_State *L)
 // all together now:
 const struct luaL_Reg cnlib [] = {
 #define BLOOP(X) {#X, X}
-        BLOOP(cn_get_context),
-        BLOOP(cn_drop_context),
-        BLOOP(cn_new_model),
-        BLOOP(cn_delete_model),
-        BLOOP(cn_list_models),
-        BLOOP(cn_import_nml),
-        BLOOP(cn_export_nml),
-        BLOOP(cn_reset_model),
-        BLOOP(cn_cull_deaf_synapses),
-        BLOOP(cn_describe_model),
-        BLOOP(cn_get_model_parameter),
-        BLOOP(cn_set_model_parameter),
-        BLOOP(cn_advance),
-        BLOOP(cn_advance_until),
-
-        BLOOP(cn_new_neuron),
-        BLOOP(cn_new_synapse),
-        BLOOP(cn_get_unit_properties),
-        BLOOP(cn_get_unit_parameter),
-        BLOOP(cn_set_unit_parameter),
-        BLOOP(cn_get_unit_vars),
-        BLOOP(cn_reset_unit),
-
-        BLOOP(cn_get_units_matching),
-        BLOOP(cn_get_units_of_type),
-        BLOOP(cn_set_matching_neuron_parameter),
-        BLOOP(cn_set_matching_synapse_parameter),
-        BLOOP(cn_revert_matching_unit_parameters),
-        BLOOP(cn_decimate),
-        BLOOP(cn_putout),
-
-        BLOOP(cn_new_tape_source),
-        BLOOP(cn_new_periodic_source),
-        BLOOP(cn_new_noise_source),
-        BLOOP(cn_get_sources),
-        BLOOP(cn_connect_source),
-        BLOOP(cn_disconnect_source),
-
-        BLOOP(cn_start_listen),
-        BLOOP(cn_stop_listen),
-        BLOOP(cn_start_log_spikes),
-        BLOOP(cn_stop_log_spikes),
+        BLOOP(dump_available_units),
+        BLOOP(get_context),
+        BLOOP(drop_context),
+        BLOOP(new_model),
+        BLOOP(delete_model),
+        BLOOP(list_models),
+        BLOOP(import_nml),
+        BLOOP(export_nml),
+        BLOOP(reset_model),
+        BLOOP(cull_deaf_synapses),
+        BLOOP(describe_model),
+        BLOOP(get_model_parameter),
+        BLOOP(set_model_parameter),
+        BLOOP(advance),
+        BLOOP(advance_until),
+
+        BLOOP(new_neuron),
+        BLOOP(new_synapse),
+        BLOOP(get_unit_properties),
+        BLOOP(get_unit_parameter),
+        BLOOP(set_unit_parameter),
+        BLOOP(get_unit_vars),
+        BLOOP(reset_unit),
+
+        BLOOP(get_units_matching),
+        BLOOP(get_units_of_type),
+        BLOOP(set_matching_neuron_parameter),
+        BLOOP(set_matching_synapse_parameter),
+        BLOOP(revert_matching_unit_parameters),
+        BLOOP(decimate),
+        BLOOP(putout),
+
+        BLOOP(new_tape_source),
+        BLOOP(new_periodic_source),
+        BLOOP(new_noise_source),
+        BLOOP(get_sources),
+        BLOOP(connect_source),
+        BLOOP(disconnect_source),
+
+        BLOOP(start_listen),
+        BLOOP(stop_listen),
+        BLOOP(start_log_spikes),
+        BLOOP(stop_log_spikes),
 #undef BLOOP
         {NULL, NULL}
 };
@@ -1004,13 +1016,13 @@ const struct luaL_Reg cnlib [] = {
 
 extern "C" {
 
-int luaopen_libcn( lua_State *L)
+int luaopen_cnrun( lua_State *L)
 {
 #ifdef HAVE_LUA_51
-        printf( "register cnlib\n");
+        printf( "register cnrun\n");
         luaL_register(L, "cnlib", cnlib);
 #else  // this must be 5.2
-        printf( "newlib cnlib\n");
+        printf( "newlib cnrun\n");
         luaL_newlib(L, cnlib);
 #endif
         return 1;
diff --git a/upstream/src/tools/Makefile.am b/upstream/src/tools/Makefile.am
index c95da44..6fbad79 100644
--- a/upstream/src/tools/Makefile.am
+++ b/upstream/src/tools/Makefile.am
@@ -13,7 +13,6 @@ hh_latency_estimator_SOURCES = \
 	hh-latency-estimator.cc
 hh_latency_estimator_LDADD = \
 	../libcnrun/libcnrun.la \
-	../libstilton/libstilton.la \
 	$(LIBCN_LIBS)
 hh_latency_estimator_LDFLAAGS = \
 	-shared

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/cnrun.git



More information about the debian-med-commit mailing list