Skip to content
Snippets Groups Projects
  1. Sep 20, 2021
    • Robin De Schepper's avatar
      Fixed MRO and code duplication in `setup.py` (#1672) · f13f786a
      Robin De Schepper authored
      The duplication arose from slightly more complicated composition than usual but could be resolved by proper MRO, it took me a few passes from its original form as well before I figured out the situation is not as complicated as it seems.
      
      `super()` is equal to `super(cls, self)` where `cls` is obtained from the current function's class scope. If arg 2  is an object it will start an MRO search of the object, but skipping classes before the 1st arg type is encountered. In our case with the following base classes: `(_command_template, base_command_class)` this means we can define our base logic in `_command_template` and use `super()` calls there to traverse the MRO in `(base_command_class,)`, so by simply defining `class install_command(_command_template, install)` and `bdist_wheel_command(_command_template, bdist_wheel)` our MRO issue is solved and the duplication removed.
      f13f786a
    • Nora Abi Akar's avatar
      Fix cv_policy parse and write in ACC (#1665) · c34b7c96
      Nora Abi Akar authored
      - Allow CV policies to be parsed and written as a `defaultable` in an ACC decor description. 
      - The format used is `(default (cv-policy (_cv-policy-sexpr_)))`. 
      - Add unit tests. 
      - Fix strange white-space formatting.
      
      Fixes #1660
      c34b7c96
    • Sam Yates's avatar
      Fix on-components on empty cable bug (#1658) · ab537bb1
      Sam Yates authored
      * Filter results of `ls::on_components(1, reg)` to avoid duplicate or
      coincident locations arising from terminal zero-length cables in region
      argument.
      ab537bb1
  2. Sep 09, 2021
  3. Sep 06, 2021
  4. Sep 01, 2021
  5. Aug 27, 2021
  6. Aug 24, 2021
  7. Aug 23, 2021
  8. Aug 20, 2021
    • thorstenhater's avatar
      Fix ambiguous Region/Locset expressions (#1629) · 939cb91a
      thorstenhater authored
      - Add a set of test cases to check the behaviour
      - Remove the function `(nil)` from the the DSL
      - Remove `nil` and `()` as literals
      - Add functions `(region-nil)` and `(locset-nil)`
      
      Fixes an issue where `join` (and likely `intersect`) would not work due to the fact that
      `nil` values could not be coerced to `region` or `locset`. This occurred while loading 
      a NML files.
      
      While investigating it was found that certain calls, eg `(join () ())` are ambiguous and cannot
      be resolved without changes in no proportion to the gain. The cause here is that
      we can resolve `()` as region or a locset and at the same time `join` maps a list of
      locsets or regions to a locset or region, consequently `(join () ())` can be both.
      
      For future reference, in `label_parse.cpp::eval` we look for the first match in the `eval_map` 
      of a function name that can be successfully evaluated. However, this might not be the best match
      (and the ordering depends on the internals of `eval_map`).  We _could_ check all successful
      evaluations, but as eval is recursive, this idea has some obvious issues.
      939cb91a
  9. Aug 19, 2021
  10. Aug 17, 2021
  11. Aug 16, 2021
  12. Aug 10, 2021
  13. Aug 02, 2021
    • thorstenhater's avatar
      Bug/assorted static analysis (#1615) · fa63f8c3
      thorstenhater authored
      * Fix failure to return value in `py_mech_cat_value_iterator `.
      * String butchered by formatting.
      * Join unnecessary separation of string literals in `arborio/cabelio.cpp`
      * Add missing throw in s_expr code.
      * Return value, not reference, in `merge_iterator::operator++(int)`.
      * Check for self-assignment in `mechanism_catalogue`.
      * Initialize all members of `mechanism`.
      * Fix index check order in `multi_event_stream` debug output.
      * Use coordinator_ from base class in `memory::array`.
      fa63f8c3
    • Brent Huisman's avatar
      Docs mechabi (#1610) · 79450573
      Brent Huisman authored
      * Bit of review on the copy of the mech abi docs.
      * Convert api/abi docs to C Domain directives.
      79450573
  14. Jul 29, 2021
    • Benjamin Cumming's avatar
    • thorstenhater's avatar
      Implement mechanism ABI · ff12bb82
      thorstenhater authored
      Implements #1376.
      
      * Provide a common C linkage ABI for externally compiled mechanisms, for both CPU and GPU.
      * Remove mechanism type hierarchy (`concrete_mechanism` etc.), and move corresponding functionality to the back-end shared state objects. Mechanism catalogue is no longer indexed by type id.
      * Distinguish between SIMD optimal alignment and SIMD width with new `min_align` attribute. Mechanisms provide both pieces of information via ABI.
      ff12bb82
  15. Jul 27, 2021
  16. Jul 23, 2021
  17. Jul 05, 2021
  18. Jul 02, 2021
  19. Jun 29, 2021
    • thorstenhater's avatar
      Fix GPU compile. (#1601) · ca254d15
      thorstenhater authored
      ca254d15
    • thorstenhater's avatar
      Add S-Exp for CV Policies (#1511) · a297ff44
      thorstenhater authored
      1. All s-exp parsing has migrated to `arborio`
      2. CV policies can now be read from string as per #1334. This is needed for the GUI project.
      2. No longer can `arb::locset` and `arb::region` be constructed from mere strings
      2. We have `arborio::literals` to construct `region`s, `locset`s, and `cv_policy`s in the form of `_rg`, `_ls`, and `_cvp`.
      3. The `_lab` suffix now constructs an object that converts to `named` morphologies, rather than a simple string.
      4. Constructors of `region` and `locset` are now properly guarded
      5. Consequently, a lot of missing inheritance from `region_tag` and `locset_tag` was retrofitted.
      
      Closes #1334 
      Closes #1419 
      a297ff44
  20. Jun 25, 2021
  21. Jun 24, 2021
  22. Jun 23, 2021
    • Brent Huisman's avatar
      Remove default arch target from setup.py (#1594) · 51e35898
      Brent Huisman authored
      Don't pass any architecture by default in setup.py to allow for building binary wheels for targets like x86_64.
      
      Build Python package with 'none' arch by default.
      Bump version to 0.5.2.
      v0.5.2
      51e35898
    • Sebastian Schmitt's avatar
      Fix typo (#1592) · 9155ee45
      Sebastian Schmitt authored
      9155ee45
    • Benjamin Cumming's avatar
      Add optional target-specific configuration for CMake (#1586) · bcd2ca1e
      Benjamin Cumming authored
      - Add an optional CMake option `ARB_CXX_FLAGS_TARGET` for setting target-specific flags to use when compiling for the target architecture (not applied to compilation of modcc).
      - If `ARB_ARCH=="none"` CMake will not add architecture-specific `mtune/march/mcpu` flags
      - Remove `ARB_CXXOPT_ARCH` from the installed `arbor-config.cmake`, and replace with more general `ARB_CXX_FLAGS_TARGET`.
      - Update spack `package.py` to use this feature to pass custom flags.
      
      Fixes #1519
      Fixes #1522 
      
      Replaces PR #1518 
      bcd2ca1e
  23. Jun 22, 2021