1. 10 Jul, 2019 1 commit
  2. 09 Jul, 2019 1 commit
    • Andreas Dedner's avatar
      [!692] Fix python version detection. · ca649c1a
      Andreas Dedner authored
      Merge branch 'bugfix/python-version-detector' into 'master'
      
      ref:core/dune-common This MR fixes the mixup of python version detection. As
      in the system cmake script the newest python version needs to be listed first.
      
      See merge request [!692]
      
        [!692]: gitlab.dune-project.org/core/dune-common/merge_requests/692
      ca649c1a
  3. 08 Jul, 2019 2 commits
  4. 07 Jul, 2019 1 commit
  5. 04 Jul, 2019 2 commits
    • Carsten Gräser's avatar
      [!691] Fix activation of union members · e2c4b0a9
      Carsten Gräser authored
      Merge branch 'feature/proper-union-activation' into 'master'
      
      ref:core/dune-common
      
      -   Members of a union need to be activated by calling a constructor (e.g.
          using placement new)
      -   This allows to also delete the move-assignment operators such that we can
          now better protect the internal classes against misuse.
      
      See merge request [!691]
      
        [!691]: gitlab.dune-project.org/core/dune-common/merge_requests/691
      e2c4b0a9
    • Carsten Gräser's avatar
      Fix activation of union members · 944d9df2
      Carsten Gräser authored
      * Members of a union need to be activated by calling a constructor
        (e.g. using placement new)
      * This allows to also delete the move-assignment operators such
        that we can now better protect the internal classes against misuse.
      944d9df2
  6. 03 Jul, 2019 2 commits
    • Carsten Gräser's avatar
      [!689] Impove Std::variant implementation · 727c0348
      Carsten Gräser authored
      Merge branch 'feature/improve-std-variant' into 'master'
      
      ref:core/dune-common This fixes several bugs/incompatibilities and makes the
      code (hopefully) a little more robust and better to understand. It's the
      result of the discussion with @lasse.hinrichsen.
      
      This should also fix the problem in [dune-localfunctions!113]
      
      -   Remove explicit Buffer class and use aligned_storage directly
      -   Use a single TypeStorage implementation for all types
      -   Rename variant_union_ to \`VariadicUnion\*
      -   Clean up interfaces and implementation of TypeStorage and VariadicUnion
          -   Only allow (default) construction of empty objects
          -   Only allow move assignment. The rhs must be empty, but this can
              neither be checked statically nor dynamically.
          -   All construction and assignment is done using special construct() and
              assign() methods.
          -   Destruction is only done using the destruct() method.
      -   Impl::variant_ does no longer rely on standard construction and assignment
          operators (despite the two exceptions) but uses the new special methods
      
      This fixes several bugs and incompatibilities of the old implementation:
      
      -   Non-trivial types are no longer copied binary.
      -   Destructors are now called properly.
      -   Copy/move assignment now decays to copy/move assignment of the stored
          value if it already has the target type.
      -   Unnecessary copies are avoided.
      
      See merge request [!689]
      
        [dune-localfunctions!113]: gitlab.dune-project.org/core/dune-localfunctions/merge_requests/113
        [!689]: gitlab.dune-project.org/core/dune-common/merge_requests/689
      727c0348
    • Carsten Gräser's avatar
      Impove Std::variant implementation · 7d2fa8c3
      Carsten Gräser authored
      * Remove explicit Buffer class and use aligned_storage directly
      * Use a single TypeStorage implementation for all types
      * Rename variant_union_ to VariadicUnion
      * Clean up interfaces and implementation of TypeStorage and VariadicUnion
        * Only allow (default) construction of empty objects
        * Only allow move assignment. The rhs must be empty, but
          this can neither be checked statically nor dynamically.
        * All construction and assignment is done using special
          construct() and assign() methods.
        * Destruction is only done using the destruct() method.
      * Impl::variant_ does no longer rely on standard construction
        and assignment operators (despite the two exceptions) but
        uses the new special methods
      
      This fixes several bugs and incompatibilities of the old
      implementation:
      
      * Non-trivial types are no longer copied binary.
      * Destructors are now called properly.
      * Copy/move assignment now decays to copy/move
        assignment of the stored value if it already
        has the target type
      7d2fa8c3
  7. 26 Jun, 2019 8 commits
  8. 19 Jun, 2019 2 commits
  9. 18 Jun, 2019 4 commits
  10. 14 Jun, 2019 8 commits
    • Ansgar Burchardt's avatar
      [!684] add explicit capture for `this` · 2e9fde4d
      Ansgar Burchardt authored
      Merge branch 'explicit-capture-for-this' into 'master'
      
      ref:core/dune-common This addresses the following warnings from GCC 9:
      
          dune/common/test/testsuite.hh:78:30: warning: implicit capture of ‘this’ via ‘[=]’ is deprecated in C++20 [-Wdeprecated]
          dune/common/test/testsuite.hh:99:30: warning: implicit capture of ‘this’ via ‘[=]’ is deprecated in C++20 [-Wdeprecated]
      
      See merge request [!684]
      
        [!684]: gitlab.dune-project.org/core/dune-common/merge_requests/684
      2e9fde4d
    • Ansgar Burchardt's avatar
      add explicit capture for `this` · a05402c4
      Ansgar Burchardt authored
      This addresses the following warnings from GCC 9:
      
          dune/common/test/testsuite.hh:78:30: warning: implicit capture of ‘this’ via ‘[=]’ is deprecated in C++20 [-Wdeprecated]
          dune/common/test/testsuite.hh:99:30: warning: implicit capture of ‘this’ via ‘[=]’ is deprecated in C++20 [-Wdeprecated]
      
      Note that pre-C++20 does not allow to explicitly capture `this` when
      the default capture is `=`.  So all captures need to be listed.
      a05402c4
    • Jö Fahlke's avatar
      [!683] [SIMD] Avoid parameter-passing-abi note, again. · 59d1a167
      Jö Fahlke authored
      Merge branch 'simd-no-abi-warning2' into 'master'
      
      ref:core/dune-common Change all by-value parameters to simd functions that
      might be simd vectors or masks to const-ref parameters. This means they don't
      have to be split into multiple simd registers if the current abi does not have
      large enough registers, I'm guessing.
      
      Closes: [#164] See also: [!607]
      
      WIP:
      
      -   [x] Manually verify the warnings are really gone.
      
      See merge request [!683]
      
        [#164]: gitlab.dune-project.org/NoneNone/issues/164
        [!607]: gitlab.dune-project.org/NoneNone/merge_requests/607
        [!683]: gitlab.dune-project.org/core/dune-common/merge_requests/683
      
      
      Closes #164
      59d1a167
    • Jö Fahlke's avatar
      [SIMD] Avoid parameter-passing-abi note, again. · 1dd39302
      Jö Fahlke authored
      Change all by-value parameters to simd functions that might be simd vectors or
      masks to const-ref parameters.  This means they don't have to be split into
      multiple simd registers if the current abi does not have large enough
      registers, I'm guessing.
      
      Closes: #164
      See also: !607
      1dd39302
    • Jö Fahlke's avatar
      [!682] Changelog: Vc-detected architecture flags · 71455be1
      Jö Fahlke authored
      Merge branch 'vc-architecture-changelog' into 'master'
      
      ref:core/dune-common Closes: [#163]
      
      See merge request [!682]
      
        [#163]: gitlab.dune-project.org/NoneNone/issues/163
        [!682]: gitlab.dune-project.org/core/dune-common/merge_requests/682
      
      
      Closes #163
      71455be1
    • Jö Fahlke's avatar
      Changelog: Vc-detected architecture flags · 82630550
      Jö Fahlke authored
      82630550
    • Jö Fahlke's avatar
      [!680] [CI] Compile the expensive tests with avx again. · 26fc6b83
      Jö Fahlke authored
      Merge branch 'ensure-avx-test' into 'master'
      
      ref:core/dune-common Closes: [#165]
      
      WIP:
      
      -   [x] ensure the Vc vector types really turn out to have the expected size
          (well, we check Vc implementation, but close enough)
      
      See merge request [!680]
      
        [#165]: gitlab.dune-project.org/NoneNone/issues/165
        [!680]: gitlab.dune-project.org/core/dune-common/merge_requests/680
      
      
      Closes #165
      26fc6b83
    • Jö Fahlke's avatar
      CI: Ensure Vc uses SSE2 implementation by default · 8543d148
      Jö Fahlke authored
      Other implementations should only be selected if the compiler is specifically
      told to support them.
      8543d148
  11. 13 Jun, 2019 4 commits
  12. 12 Jun, 2019 4 commits
    • Jö Fahlke's avatar
      [!677] Don't pass the cpu flags detected by Vc to the compiler · 19557065
      Jö Fahlke authored
      Merge branch 'avoid-vc-cpu-detection' into 'master'
      
      ref:core/dune-common Vc detects CPU flags based on the name of the CPU. This
      can be a problem in virtualization environment, when the name of the CPU is
      visible, but not all features are enabled in the guest.
      
      Also, enabling all detected features in the the compiler makes it difficult to
      impossible for the user to force his own feature flags, e.g. to cross-build
      generic executables on hosts with many features to be run later on hosts with
      fewer features.
      
      Closes: [docker/ci#9]
      
      WIP:
      
      -   [x] properly test, in particular in the light of [docker/ci!46] being
          applied to the ci images
      -   [x] ansgar [proposed] getting rid of all the Vc_COMPILE_FLAGS, too. Try
          that: [!679] (redifined [!679] as an add-on to this one, so it does not
          stop me from merging this one)
      -   [x] changelog entry (deferred to [#163])
      
      See merge request [!677]
      
        [docker/ci#9]: gitlab.dune-project.org/docker/ci/issues/9
        [docker/ci!46]: gitlab.dune-project.org/docker/ci/merge_requests/46
        [proposed]: docker/ci#9 (comment 56350)
        [!679]: gitlab.dune-project.org/NoneNone/merge_requests/679
        [#163]: gitlab.dune-project.org/NoneNone/issues/163
        [!677]: gitlab.dune-project.org/core/dune-common/merge_requests/677
      
      
      Closes docker/ci#9
      19557065
    • Oliver Sander's avatar
      [!678] Bugfix: The return type of allreduce is int, not void · 7933d8fc
      Oliver Sander authored
      Merge branch 'fix-return-type-of-sequential-allreduce' into 'master'
      
      See merge request [!678]
      
        [!678]: Nonecore/dune-common/merge_requests/678
      7933d8fc
    • Oliver Sander's avatar
      6ef2f6f4
    • Jö Fahlke's avatar
      Don't pass the cpu flags detected by Vc to the compiler · c0bbf1a5
      Jö Fahlke authored
      Vc detects CPU flags based on the name of the CPU.  This can be a problem in
      virtualization environment, when the name of the CPU is visible, but not all
      features are enabled in the guest.
      
      Also, enabling all detected features in the the compiler makes it difficult to
      impossible for the user to force his own feature flags, e.g. to cross-build
      generic executables on hosts with many features to be run later on hosts with
      fewer features.
      
      Closes: docker/ci#9
      c0bbf1a5
  13. 28 May, 2019 1 commit
    • Jö Fahlke's avatar
      [!675] Expect `;` after macro · a028eb31
      Jö Fahlke authored
      Merge branch 'fix-macro-not-expecting-semicolon' into 'master'
      
      ref:core/dune-common This avoids certain compiler warnings about unneccessary
      ;. It plays nicer with automatic editor indentation compared to the the
      alternative of dropping the ; from every invocation of the macro (see [!673]
      for that).
      
      Alternative to: [!673]
      
      WIP:
      
      -   [x] Waiting for feedback from @gruenich
      
      See merge request [!675]
      
        [!673]: gitlab.dune-project.org/NoneNone/merge_requests/673
        [!675]: gitlab.dune-project.org/core/dune-common/merge_requests/675
      a028eb31