Skip to content
Snippets Groups Projects
  1. Jun 14, 2017
  2. Apr 29, 2017
  3. Apr 21, 2017
  4. Apr 18, 2017
  5. Mar 16, 2017
  6. Feb 17, 2017
  7. Jan 31, 2017
  8. Jan 02, 2017
  9. Dec 18, 2016
  10. Dec 15, 2016
  11. Nov 29, 2016
    • Ansgar Burchardt's avatar
      Merge branch 'cherry-pick-a6527917' into 'releases/2.5' · cfa9240f
      Ansgar Burchardt authored
      Merge branch 'feature/improve-is_range' into 'master'
      
      Improve is_range
      
      This avoids the `sizeof` hack in favour of a more idiomatic version
      and also implements checks for all needed expressions:
      * existenz of r.begin()
      * existenz of r.end()
      * inequality comparison of iterator and end-iterator
      * end-iterator converts to iterator (dropped in C++17)
      * prefix increment of iterator
      * dereference of iterator
         
      In order to avoid a "computed value not used warning" we
      add an additional call to a dummy function.
          
      In fact this check is not complete, because it only accepts
      member begin() and end(). Adding support for std:: and adl-version
      would require a more complicated helper and thus better be placed
      in a real concept definition.
      
      See merge request !187
      
      See merge request !188
    • Carsten Gräser's avatar
      Merge branch 'feature/improve-is_range' into 'master' · 7cbe9580
      Carsten Gräser authored and Ansgar Burchardt's avatar Ansgar Burchardt committed
      Improve is_range
      
      This avoids the `sizeof` hack in favour of a more idiomatic version
      and also implements checks for all needed expressions:
      * existenz of r.begin()
      * existenz of r.end()
      * inequality comparison of iterator and end-iterator
      * end-iterator converts to iterator (dropped in C++17)
      * prefix increment of iterator
      * dereference of iterator
         
      In order to avoid a "computed value not used warning" we
      add an additional call to a dummy function.
          
      In fact this check is not complete, because it only accepts
      member begin() and end(). Adding support for std:: and adl-version
      would require a more complicated helper and thus better be placed
      in a real concept definition.
      
      See merge request !187
      7cbe9580
  12. Nov 23, 2016
    • Ansgar Burchardt's avatar
      Merge branch 'cherry-pick-3e67db3d' into 'releases/2.5' · 12f8f5b7
      Ansgar Burchardt authored
      Merge branch 'bugfix/rangeutilities-use-std-max_element' into 'master'
      
      Fix `max_value` and `min_value`
      
      This merge request adds a test for `rangeutilities.hh` and corrects `max_value` and `min_value`.
      
      See merge request !183
      
      See merge request !186
      12f8f5b7
    • Ansgar Burchardt's avatar
      Merge branch 'bugfix/rangeutilities-use-std-max_element' into 'master' · c45cdffe
      Ansgar Burchardt authored
      Fix `max_value` and `min_value`
      
      This merge request adds a test for `rangeutilities.hh` and corrects `max_value` and `min_value`.
      
      See merge request !183
      c45cdffe
    • Ansgar Burchardt's avatar
      Merge branch 'cherry-pick-e683e1df' into 'releases/2.5' · 2621b908
      Ansgar Burchardt authored
      Merge branch 'cleanup/extra-semicolon' into 'master'
      
      [cleanup] fix warning: extra ‘;’ [-Wpedantic]
      
      This removes the extra ‘;’ warnings when compiling with -Wpedantic.
      
      See merge request !176
      
      See merge request !184
      2621b908
    • Ansgar Burchardt's avatar
      Merge branch 'cleanup/extra-semicolon' into 'master' · 6eb1548c
      Ansgar Burchardt authored
      [cleanup] fix warning: extra ‘;’ [-Wpedantic]
      
      This removes the extra ‘;’ warnings when compiling with -Wpedantic.
      
      See merge request !176
      6eb1548c
    • Ansgar Burchardt's avatar
      Merge branch 'cherry-pick-b5a0d2ed' into 'releases/2.5' · 767ea845
      Ansgar Burchardt authored
      Merge branch 'bugfix/poolallocator-debug' into 'master'
      
      Add correct offset for end of chunk
      
      Using `&current->chunk_ + x` will add `x * sizeof(current->chunk_)` to
      the pointer, but we only want to add `x`.
      
      Adding a much larger number still "works" on 64bit systems (although it
      does not perform the intended check). However on 32bit platforms this
      wraps (at least in the way used by sllisttest.cc) and the "end" of the
      chunk is suddenly before the beginning.
      
      Closes #57
      
      See merge request !181
      
      See merge request !182
      767ea845
    • Markus Blatt's avatar
      Merge branch 'bugfix/poolallocator-debug' into 'master' · c089f849
      Markus Blatt authored
      Add correct offset for end of chunk
      
      Using `&current->chunk_ + x` will add `x * sizeof(current->chunk_)` to
      the pointer, but we only want to add `x`.
      
      Adding a much larger number still "works" on 64bit systems (although it
      does not perform the intended check). However on 32bit platforms this
      wraps (at least in the way used by sllisttest.cc) and the "end" of the
      chunk is suddenly before the beginning.
      
      Closes #57
      
      See merge request !181
      c089f849
  13. Nov 20, 2016
    • Ansgar Burchardt's avatar
      Merge branch 'cherry-pick-b8d06d5c' into 'releases/2.5' · be1f68a8
      Ansgar Burchardt authored
      Cherry-pick: Merge branch 'feature/fix-forloop' into 'master'
      
      [bugfix] Fix possible memory corruption in ForLoop
      
      The reason for perfect forwarding is to also forward r-values as
      r-value references such that the called function can do a move
      on such values.
      As a consequence you should never call `std::forward` on the same
      object twice because the second function may get a moved from
      object since the first one has already stolen the data. E.g.
      for the following operation
      ```cpp
        template<int i>
        struct Operation
        {
          static void apply(std::vector<int> v)
          {}
        };
      ```
      a call to
      ```cpp
        Dune::ForLoop<Operation, 0, 1>::apply(std::vector<int>{1,2,3});
      ```
      will pass a moved from vector in an undefined state on the second call.
      
      BTW: The same error existed in the old implementation of `ForLoop`
      
      See merge request !177
      
      See merge request !180
      be1f68a8
    • Carsten Gräser's avatar
      Merge branch 'feature/fix-forloop' into 'master' · a8168e28
      Carsten Gräser authored
      [bugfix] Fix possible memory corruption in ForLoop
      
      The reason for perfect forwarding is to also forward r-values as
      r-value references such that the called function can do a move
      on such values.
      As a consequence you should never call `std::forward` on the same
      object twice because the second function may get a moved from
      object since the first one has already stolen the data. E.g.
      for the following operation
      ```cpp
        template<int i>
        struct Operation
        {
          static void apply(std::vector<int> v)
          {}
        };
      ```
      a call to
      ```cpp
        Dune::ForLoop<Operation, 0, 1>::apply(std::vector<int>{1,2,3});
      ```
      will pass a moved from vector in an undefined state on the second call.
      
      BTW: The same error existed in the old implementation of `ForLoop`
      
      See merge request !177
      a8168e28
  14. Nov 17, 2016
    • Ansgar Burchardt's avatar
      Merge branch 'cherry-pick-f428dec5' into 'releases/2.5' · b57f0f5b
      Ansgar Burchardt authored
      Merge branch 'feature/update-man-page' into 'master'
      
      Update man page of dunecontrol
      
      Closes #52
      
      See merge request !159
      
      See merge request !174
    • Ansgar Burchardt's avatar
      Merge branch 'cherry-pick-16aa6f29' into 'releases/2.5' · 6b5afd2e
      Ansgar Burchardt authored
      Merge branch 'feature/remove_tuples_hh' into 'master'
      
      Deprecate header tuples.hh
      
      See merge request !89
      
      See merge request !165
      6b5afd2e
    • Ansgar Burchardt's avatar
      Merge branch 'feature/update-man-page' into 'master' · 89dabfa8
      Ansgar Burchardt authored
      Update man page of dunecontrol
      
      Closes #52
      
      See merge request !159
      89dabfa8
    • Ansgar Burchardt's avatar
      Merge branch 'cherry-pick-40752c75' into 'releases/2.5' · c39a2297
      Ansgar Burchardt authored
      Merge branch 'feature/tuplevector' into 'master'
      
      Add the TupleVector class
      
      The `TupleVector` class is a multitype container without
      algebraic operations. It relates to `Dune::MultiTypeBlockVector`
      like `std::vector` relates to `Dune::BlockVector`. This is achived
      by augmenting `std::tuple` by the following:
      * `operator[]` for `Dune::index_constant` arguments
      * `static size()`
          
      You can now write code like this which will work for multitype
      and classic vector like containers:
      
      ```c++    
          using namespace Dune::Hybrid;
          forEach(integralRange(size(v)), [&](auto i) {
              v[i] = i;
          });
       ```
      
      Notice that `TupleVector` was already present as implementation detail
      of two tests in dune-common and that dune-functions and dune-solvers
      also both contained their own variants
      
      See merge request !134
      
      See merge request !168
      c39a2297
    • Ansgar Burchardt's avatar
      Merge branch 'cherry-pick-6951f8a7' into 'releases/2.5' · 3c8e294f
      Ansgar Burchardt authored
      Cherry-pick: Merge branch 'feature/simplify-foreach' into 'master'
      
      Short circuit Hybrid::forEach for integer_sequence
      
      This reduced the template instanciation depth drastically.
      E.g., for range=`integer_sequence<21>` is changed from 319 to 84.
      
      This is especially important for clang, because this has a default max-depth of 256 in contrast to gcc (900).
      
      See merge request !162
      
      See merge request !163
      3c8e294f
  15. Nov 16, 2016
    • Ansgar Burchardt's avatar
      Merge branch 'cherry-pick-fce40000' into 'releases/2.5' · 6d036a9c
      Ansgar Burchardt authored
      Cherry-pick: [doc] Update required clang version
      
      We now require clang 3.8
      
      See merge request !173
      6d036a9c
    • Ansgar Burchardt's avatar
      Merge branch 'cherry-pick-9af12b69' into 'releases/2.5' · c15701e9
      Ansgar Burchardt authored
      Merge branch 'feature/fix-call-MPIfinalize-onlyif-MPIInit-called' into 'master'
      
      MPIHelper should only finalize MPI if it called init
      
      MPIHelper only calls MPI if it was not already called before MPIHelper is constructed. Finalize is however always called on destruction leading to
      problems with other packages calling init/finalize before/after MPIHelper
      is setup. Added a bool storing the information if MPIInit was called by the
      MPIHelper so that finalize is only called in that case.
      
      See merge request !58
      
      See merge request !172
      c15701e9
    • Ansgar Burchardt's avatar
      Merge branch 'cherry-pick-b2d54827' into 'releases/2.5' · 730c6e53
      Ansgar Burchardt authored
      Merge branch 'feature/allow-shared-libs-with-object-libaries' into 'master'
      
      Allow using object libraries in conjunction with shared libs.
      
      CMake's object libraries cannot judge whether they will be used
      in shared libraries. To allow ease of in core and downstream modules
      we resort to compiling position independent code whenever shared DUNE
      libraries are requested. This is done by setting CMAKE_POSITION_INDEPENDENT_CODE
      to ON. Please not that the can be overriding manually by setting the target
      property POSITION_INDEPENDENT_CODE to something else where needed.
      
      Closes staging/dune-uggrid#16
      
      See merge request !160
      
      See merge request !166
      730c6e53
    • Ansgar Burchardt's avatar
      Merge branch 'cherry-pick-401ad9be' into 'releases/2.5' · cc44955e
      Ansgar Burchardt authored
      Merge branch 'feature/dunecontrol-git-worktree' into 'master'
      
      make dunecontrol compatible with git worktrees
      
      I currently have my dune directory where all the git repositories for the Dune modules reside with checked-out master branches.
      To simplify testing the Dune 2.5 branches, I created a new dune-2.5 directory where I created linked worktrees for the releases/2.5 branch of each Dune module with `git worktree`.
      Unfortunately, `dunecontrol` doesn't recognize these linked worktrees as git repositories. When I call e.g. `dunecontrol update` it gives me warnings like
      ```
      --- calling update for dune-common ---
      WARNING: dune_common is not under a known version control system.
               We support svn, git and cvs.
      --- dune-common done ---
      ```
      This is caused by the fact that `dunecontrol` only checks whether .git exists as a directory, but in linked worktrees .git is a regular file containing the path of the main worktree.
      This merge request fixes this problem by additionally checking if .git exists as a regular file.
      
      See merge request !161
      
      See merge request !167
      cc44955e
  16. Nov 14, 2016
    • Carsten Gräser's avatar
      [doc] Update required clang version · 01a72898
      Carsten Gräser authored
      01a72898
    • Andreas Dedner's avatar
      Merge branch 'feature/fix-call-MPIfinalize-onlyif-MPIInit-called' into 'master' · 62237117
      Andreas Dedner authored
      MPIHelper should only finalize MPI if it called init
      
      MPIHelper only calls MPI if it was not already called before MPIHelper is constructed. Finalize is however always called on destruction leading to
      problems with other packages calling init/finalize before/after MPIHelper
      is setup. Added a bool storing the information if MPIInit was called by the
      MPIHelper so that finalize is only called in that case.
      
      See merge request !58
      62237117
    • Christoph Grüninger's avatar
      Merge branch 'feature/tuplevector' into 'master' · d0a2c81c
      Christoph Grüninger authored
      Add the TupleVector class
      
      The `TupleVector` class is a multitype container without
      algebraic operations. It relates to `Dune::MultiTypeBlockVector`
      like `std::vector` relates to `Dune::BlockVector`. This is achived
      by augmenting `std::tuple` by the following:
      * `operator[]` for `Dune::index_constant` arguments
      * `static size()`
          
      You can now write code like this which will work for multitype
      and classic vector like containers:
      
      ```c++    
          using namespace Dune::Hybrid;
          forEach(integralRange(size(v)), [&](auto i) {
              v[i] = i;
          });
       ```
      
      Notice that `TupleVector` was already present as implementation detail
      of two tests in dune-common and that dune-functions and dune-solvers
      also both contained their own variants
      
      See merge request !134
      d0a2c81c
  17. Nov 13, 2016
    • Christoph Grüninger's avatar
      Merge branch 'feature/dunecontrol-git-worktree' into 'master' · a426ba5c
      Christoph Grüninger authored
      make dunecontrol compatible with git worktrees
      
      I currently have my dune directory where all the git repositories for the Dune modules reside with checked-out master branches.
      To simplify testing the Dune 2.5 branches, I created a new dune-2.5 directory where I created linked worktrees for the releases/2.5 branch of each Dune module with `git worktree`.
      Unfortunately, `dunecontrol` doesn't recognize these linked worktrees as git repositories. When I call e.g. `dunecontrol update` it gives me warnings like
      ```
      --- calling update for dune-common ---
      WARNING: dune_common is not under a known version control system.
               We support svn, git and cvs.
      --- dune-common done ---
      ```
      This is caused by the fact that `dunecontrol` only checks whether .git exists as a directory, but in linked worktrees .git is a regular file containing the path of the main worktree.
      This merge request fixes this problem by additionally checking if .git exists as a regular file.
      
      See merge request !161
      a426ba5c
    • Christoph Grüninger's avatar
      Merge branch 'feature/allow-shared-libs-with-object-libaries' into 'master' · d52e7120
      Christoph Grüninger authored
      Allow using object libraries in conjunction with shared libs.
      
      CMake's object libraries cannot judge whether they will be used
      in shared libraries. To allow ease of in core and downstream modules
      we resort to compiling position independent code whenever shared DUNE
      libraries are requested. This is done by setting CMAKE_POSITION_INDEPENDENT_CODE
      to ON. Please not that the can be overriding manually by setting the target
      property POSITION_INDEPENDENT_CODE to something else where needed.
      
      Closes staging/dune-uggrid#16
      
      See merge request !160
      d52e7120
    • Christoph Grüninger's avatar
      Merge branch 'feature/remove_tuples_hh' into 'master' · 6dbb10d3
      Christoph Grüninger authored
      Deprecate header tuples.hh
      
      See merge request !89
      6dbb10d3
Loading