Skip to content
Snippets Groups Projects
Commit d6af0c4d authored by Sam Yates's avatar Sam Yates Committed by Benjamin Cumming
Browse files

Feature/lib install target part 4 (#531)

All example code and validation tests no longer require access to private include directories. This provides the minimal requirement for an installable target

Note that it is still not possible to separately build mechanisms from NMODL with just the public includes, and there is not yet any package configuration file creation for use with CMake or pkg-config.

* Replace `hw::node_info` with `proc_allocation`, describing local resources for the purposes of domain decomposition.
* Group processor counting and gpu counting implementation under `node_info.cpp`.
* Remove `domain_decomposition` dependency from `cell_group_factory.hpp` so we can use the latter to test for backend support for a cell kind.
* Add `arb::cell_kind_implementation()` which performs the mapping from cell kind and backend kind to a `cell_group_ptr`-producing function (this will then become the site for custom cell group kind mapping support in future work).
* Move headers for aux library into `aux/include/aux`, so that there is less ambiguity in header location within test and example code.
* Simplify a little the affinity scanning code.
* Add `sysconf()` and `std::thread::hardware_concurrency()` fallbacks for processor count determination.
* Move `util::mask_stream`, `util::path`, `util::scope_exit` into aux header.
* Remove `util::nop`.
* Remove `io::exporter` and `io::exporter_spike_file`; replace with simpler interface in `aux::spike_emitter`.
* Move `load_balance.hpp`, `math.hpp`, `scwio.hpp` into public includes.
* Move path, glob and scope_exit utilities to aux lib.
* Move cell group size-based partitioning functionality into partition_load_balance, through the use of new `partition_hint` structure.
* Remove brunel example specific partitioner.
* Move brunel example option code out of `::arb` namespace.
* Move swc routines out of `arb::io` and into `arb::`.
* Specialize public swc-routines to take a vector of swc_record objects instead of an arbitrary sequence; place implementations into swcio.cpp.
* Remove dependency on `util/strprintf.hpp` from lmorpho.
* Remove `arb::math::min`, `arb::math::max`.
* Remove range utility dependence from validation tests: add piece-wise linear interpolator in test/validation/interpolate.hpp; remove `times` and `values` adaptors for simple trace data; add test/validation/util.hpp with generic size function and a `to_string` for `backend_kind`.
* Add `aux::open_or_throw` helper function to replicate no-overwrite spike output behaviour in example applications.
* Add `aux::strsub` simple string substitution function for use in examples, so as to avoid a `util::strprintf` or `util::pprintf` dependency.
* Remove arbor private header dependencies from examples and validation tests.
parent b068a9d8
Showing
with 133 additions and 159 deletions
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment