Skip to content
Snippets Groups Projects
  1. Dec 15, 2022
  2. Dec 12, 2022
  3. Nov 28, 2022
  4. Nov 02, 2022
  5. Oct 27, 2022
    • Thorsten Hater's avatar
      Add a plethora of config options to a-b-c. (#1958) · 81096351
      Thorsten Hater authored
      Closes #1861 
      Closes #1783 
      
      - arbor-build-catalogue (a-b-c) does no longer need to be in a fixed location
      - nor do we statically fix the configuration for a-b-c
      - instead, we rely on `arbor.config` to read the relevant default values
      - each value can be overriden, if desired
      - added many more values to the configuration
        - gpu type and arch
        - paths and prefix 
        - CXX
      - report default settings for better diagnosis
      - implement a fallback for prefix if that does not exist; in particular for the amazing skbuild.
      
      In essence you can now use a-b-c as a standalone tool, as long as you have a properly 
      configured py-arbor.
      
      Example output after removing `_skbuild`
      ```
      Warning: prefix '/Users/hater/src/arbor/_skbuild/macosx-11.0-x86_64-3.10/cmake-install' does not exist, falling back to '/Users/hater/src/arbor/.direnv/python-3.10.6'.
      usage: arbor-build-catalogue catalogue_name mod_source_dir
      
      Generate dynamic catalogue and build it into a shared object.
      
      positional arguments:
        name              Catalogue name.
        modpfx            Directory name where *.mod files live.
      
      options:
        --raw raw [raw ...]
                          Advanced: Raw mechanisms as C++ files. Per <name> the files <name>.hpp, <name>_cpu.cpp (if CPU
                          is enabled) must be present in the target directory and with GPU support also <name>_gpu.cpp and
                          <name>_gpu.cu.
        -v, --verbose     Verbose.
        -q, --quiet       Less output.
        --cpu CPU         Enable CPU support.
        --debug [path]    Don't clean up the generated temp cpp code. Can be a target path for the generated code.
        --gpu gpu         Enable GPU support
        --gpu-arch gpu_arch
                          Enable GPU support; default=-
        --cxx cxx         Use this C++ compiler; default=/usr/local/opt/llvm/bin/clang++.
        --prefix prefix   Arbor's install prefix; default=/Users/hater/src/arbor/.direnv/python-3.10.6.
        --bin bin         Look here for Arbor utils like modcc; relative to prefix, default=bin.
        --lib lib         Look here for Arbor's CMake config; relative to prefix, default=lib.
        --data data       Look here for Arbor supplementals like generate_catalogue; relative to prefix, default=lib
        -h, --help        Display this help and exit.
      ```
      81096351
  6. Oct 26, 2022
    • boeschf's avatar
      Speed up CI (#2019) · fb12942b
      boeschf authored
      - Use ninja instead of make.
      - Use ccache with a per-config cache key.
      fb12942b
  7. Oct 25, 2022
  8. Oct 24, 2022
    • Thorsten Hater's avatar
      Bump OpenMPI to 4.1.x · 6880b7c4
      Thorsten Hater authored
      - bump OpenMPI version in hope of fixing the intermittent memory corruption
      - bump Ubuntu and clang versions in `sanitize.yml` workflow.
      6880b7c4
  9. Oct 19, 2022
  10. Sep 20, 2022
  11. Sep 06, 2022
  12. Aug 02, 2022
  13. Jul 28, 2022
  14. Jul 19, 2022
  15. Jul 18, 2022
  16. Jul 04, 2022
    • Brent Huisman's avatar
      Move Python build to `pyproject.toml`, bump Python minver to 3.7, fix macos... · 8af6bd27
      Brent Huisman authored
      Move Python build to `pyproject.toml`, bump Python minver to 3.7, fix macos wheel generation (#1916)
      
      * Failing Macos Python wheel builds fixed.
      * Macos Python wheels now come with dual-arch (x86-64 and arm64)
      * Moved (nearly) all Python build instructions to `pyproject.toml`
        * Enables 'build isolation', and need to specify build-deps only once, no need for users or CI scripts to pre-install them.
        * Enables editable `pip` installs (`pip install -e ./arbor`)
        * Compatible with 'build frontends' `pip` and `build`.
        * Passing CMake options actually got shorter
      * Drop Python 3.6 support.
      8af6bd27
  17. Jun 21, 2022
  18. Jun 16, 2022
  19. May 18, 2022
  20. Feb 24, 2022
    • boeschf's avatar
      export API (#1824) · 675fdbc9
      boeschf authored
      Exports all symbols so arbor can be compiled as set of shared libraries. 
      
      In order to export all symbols correctly, one macro per library and one global macro are added. The content of the macros is determined at configure time depending on build variant (static/shared), compiler, and platforms (linux, mac os) and goes into the library's include directory as `export.hpp` when installed (at build time it resides at cmake's temporary build directory). The per-library macro is named `ARB_LIBNAME_API` and goes in front of to-be-exported symbols. The global macro is `ARB_SYMBOL_VISIBLE`. 
      
      This PR adds the annotation in all of the places where it is required. Most of them are in the public headers (and corresponding sources) but some are also added in internal headers, which were required for the unit tests to link properly.
      
      Fixes #1752
      675fdbc9
  21. Jan 27, 2022
  22. Jan 26, 2022
    • Brent Huisman's avatar
      v0.6-rc (#1814) · cf99bdce
      Brent Huisman authored
      * bump version to v0.6-rc
      * Update `MANIFEST.in` and `scripts/run_python_examples.sh`
      * Update Release instructions `docs/contrib/release.rst`
      * Fix missing quotes in `python/example/single_cell_nml.py`
      * Add testing to sdist creation in `ciwheel.yml`
      * Rename `basic.yml` to `test-everything.yml`
         * Remove Python examples step from matrix (mostly because plotting takes much CPU on macos)
         * change to build /w nml
         * add test of pip builds (`pip install` in addition to CMake builds)
            * Python examples are tested here, once is enough.
      cf99bdce
  23. Jan 24, 2022
    • Thorsten Hater's avatar
      More robust build-catalogue (#1784) · d0dc6bd7
      Thorsten Hater authored
      - build-catalogue
        - now installed by pip
        - enable GPU-backends
        - isolate from being installed in a non-default dir
        - rename to arbor-build-catalogue
        - allow hand-written C++ mechanisms to be linked in the same catalogue.
      - CMake
        - enable PIC on arbor always to allow linking to shared objects
        - use relative paths when configuring a-b-c, to make relocation less of a problem
      - Python
          - ensure a-b-c is installed by pip, along with headers and libarbor.a
          - throw errors if tools (cmake scripts, arbor package, modcc) missing
          - transition setup.py setuptools -> skbuild.
      - Wheels
          - Add NML2 support to wheels
          - scripts/build-wheels.sh builds wheels, in principle valid for submission to PyPI, on your own hardware. This should be kept in sync with .github/workflows/ciwheel.yml
          - scripts/patchwheel.py corrects the rpath in the libraries in the wheels, working around a bad interplay between auditwheel and skbuild, see pypa/auditwh...
      d0dc6bd7
  24. Jan 21, 2022
    • Thorsten Hater's avatar
      CMake CUDA clean-up. (#1804) · b2cb6ced
      Thorsten Hater authored
      - Bump CMake to 3.18 for better CUDA support.
      - Clean-up our use of said support.
      - Remove old cruft and workarounds.
      - Maintenance in CI: enable MacOS 11; bump CMake versions to 3.18 / 3.22; bump bors CMake to 3.18
      
      Fixes #1790 
      b2cb6ced
  25. Dec 15, 2021
  26. Nov 26, 2021
    • Benjamin Cumming's avatar
      Test separately built catalogues (#1748) · aabaa87c
      Benjamin Cumming authored
      * add a test that tests that a catalogue built separately can be loaded via the Python interface
      * further simplification of dynamic library support
        * move all platform-specific code into the cpp implementation and out of header.
      aabaa87c
  27. Oct 13, 2021
  28. Oct 08, 2021
  29. Oct 06, 2021
  30. Oct 05, 2021
  31. Aug 19, 2021
  32. Aug 17, 2021
  33. Jul 23, 2021
  34. Jul 05, 2021
  35. Jun 24, 2021
    • Nora Abi Akar's avatar
      Python unit test clean-up (#1595) · 5661a74b
      Nora Abi Akar authored
      * Remove test_simulator.py.
      * Add missing python unit test file and fix errors.
      * Run python unit tests in verbose mode to display which were skipped.
      5661a74b
  36. Jun 23, 2021