Skip to content
Snippets Groups Projects
  1. Nov 13, 2016
    • Carsten Gräser's avatar
      Add the TupleVector class · 38d5ba56
      Carsten Gräser authored and Christoph Grüninger's avatar Christoph Grüninger committed
      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 aruments
      * static size()
      
      You can now write code like this which will work for multitype
      and classic vector like containers:
      
      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
      38d5ba56
    • Christoph Grüninger's avatar
      Merge branch 'feature/dunecontrol-git-worktree' into 'master' · 401ad9be
      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
      401ad9be
    • Felix Gruber's avatar
      make dunecontrol compatible with git worktrees · d00519ce
      Felix Gruber authored and Christoph Grüninger's avatar Christoph Grüninger committed
      In linked worktrees generated with `git worktree`, .git is a file
      instead of a directory.
      
      Since dunecontrol was only checking whether .git exists as a directory,
      it didn't recognize linked worktrees as git repositories. This problem
      can simply be fixed by additionally checking if .git exists as a regular
      file.
      d00519ce
    • Christoph Grüninger's avatar
      Merge branch 'feature/allow-shared-libs-with-object-libaries' into 'master' · b2d54827
      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
      b2d54827
    • Markus Blatt's avatar
      Allow using object libraries in conjunction with shared libs. · 55fc9c48
      Markus Blatt authored and Christoph Grüninger's avatar Christoph Grüninger committed
      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.
      55fc9c48
    • Christoph Grüninger's avatar
      Merge branch 'feature/remove_tuples_hh' into 'master' · 16aa6f29
      Christoph Grüninger authored
      Deprecate header tuples.hh
      
      See merge request !89
      16aa6f29
    • Marco Agnese's avatar
      [doc] add reference to issue for transformTuple · 64c85b42
      Marco Agnese authored and Christoph Grüninger's avatar Christoph Grüninger committed
      64c85b42
    • Marco Agnese's avatar
    • Marco Agnese's avatar
    • Carsten Gräser's avatar
      Merge branch 'feature/simplify-foreach' into 'master' · 6951f8a7
      Carsten Gräser authored
      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
      6951f8a7
    • Carsten Gräser's avatar
      Short circuit Hybrid::forEach for integer_sequence · 3dabf46e
      Carsten Gräser authored
      This reduced the template instanciation depth drastically.
      For range=integer_sequence<21> is changes from 319 to 84.
      3dabf46e
  2. Nov 08, 2016
  3. Nov 04, 2016
    • Carsten Gräser's avatar
      Merge branch 'feature/overloadset' into 'master' · cbc5dfe1
      Carsten Gräser authored
      Add overload() and orderedOverload()
      
      These helper functions allow to create overload sets from lambdas.
      E.g. one can merge to lambdas for different argument types into
      one overload set in order to easily implement type-specific behaviour
      when looping over a tuple.
      
      While the result of overload(f1, f2,...) will pick the best match
      for a given set of arguments, orderedOverload(f1,f2,...) will pick
      the first match which allows to prevent ambiguity.
      
      This functionality is proposed for the standard in P0051R2
      (open-std.org/JTC1/SC22/WG21/docs/papers/2016/p0051r2.pdf).
      There overload(...) is proposed and an upcomming proposal
      with the functionality of orderedOverload(...) is announced.
      Since the former is not accepted and the latter is not even written
      I did explicitly implement this in Dune:: instead of Dune::Std::.
      
      See merge request !153
      cbc5dfe1
    • Carsten Gräser's avatar
    • Jö Fahlke's avatar
      Merge branch 'fix/genericTranformTuple' into 'master' · 20c4047c
      Jö Fahlke authored
      make genericTransformTuple work with constant tuples
      
      This fixes the problem described in #50.
      
      See merge request !150
      20c4047c
    • Jö Fahlke's avatar
      Merge branch 'feature/proper-quoting-for-dunecontrol-exec-args' into 'master' · 6e4a9c39
      Jö Fahlke authored
      [dunecontrol] Properly quote arguments, in particular to exec and bexec.
      
      This means the you can now pass more complex scripts to exec/bexec that use
      quoting themselves, and you don't get things like this anymore:
      ```
      joe@paranoia:~/Projekte/dune-quote/dune-common$ LC_ALL=C bin/dunecontrol exec 'var="quoted value"; echo "$var"'
      --- going to build dune-common  ---
      --- calling exec for dune-common ---
      bash: value: command not found
      
      --- dune-common done ---
      --- done ---
      ```
      
      Closes: #51
      
      Planned merge date: 2016-11-04 or later.
      
      See merge request !157
      6e4a9c39
  4. Nov 03, 2016
  5. Oct 29, 2016
  6. Oct 28, 2016
  7. Oct 27, 2016
  8. Oct 26, 2016
  9. Oct 25, 2016
    • Carsten Gräser's avatar
      Add overload() and orderedOverload() · 8228b3ae
      Carsten Gräser authored
      These helper functions allow to create overload sets from lambdas.
      E.g. one can merge to lambdas for different argument types into
      one overload set in order to easily implement type-specific behaviour
      when looping over a tuple.
      
      While the result of overload(f1, f2,...) will pick the best match
      for a given set of arguments, orderedOverload(f1,f2,...) will pick
      the first match which allows to prevent ambiguity.
      
      This functionality is proposed for the standard in P0051R2
      (open-std.org/JTC1/SC22/WG21/docs/papers/2016/p0051r2.pdf).
      There overload(...) is proposed and an upcomming proposal
      with the functionality of orderedOverload(...) is announced.
      Since the former is not accepted and the latter is not even written
      I did explicitly implement this in Dune:: instead of Dune::Std::.
      8228b3ae
    • Carsten Gräser's avatar
      Merge branch 'feature/is_callable' into 'master' · 381de64f
      Carsten Gräser authored
      Add implementation of std::is_callable
      
      This is proposed for C++17 and helpful to checking correctness
      of predicates supplied to algorithms. This also commes with
      a test that checks is the behaviour is correct, especially
      with respect to various combinations of r-values, r-value references,
      and l-value-references.
      
      See merge request !151
      381de64f
    • Carsten Gräser's avatar
      [std][test] Add implementatio of std::is_callable · 48408e3b
      Carsten Gräser authored
      This is proposed for C++17 and helpful to checking correctness
      of predicates supplied to algorithms. This also commes with
      a test that checks is the behaviour is correct, especially
      with respect to various combinations of r-values, r-value references,
      and l-value-references.
      48408e3b
  10. Oct 24, 2016
  11. Oct 20, 2016
    • Martin Nolte's avatar
      Merge branch 'feature/test-fieldmatrix-cast-operator' into 'master' · fe05ec34
      Martin Nolte authored
      test assignment of matrices with cast operator
      
      Some matrix implementations, e.g., the Jacobian implementations of SPGrid have
      cast operators into the corresponding FieldMatrix type. This patch adds a
      simplified version of such a cast operator to the densematrixassignment test.
      
      See merge request !139
      fe05ec34
  12. Oct 18, 2016
  13. Oct 14, 2016
  14. Oct 12, 2016
    • Christoph Grüninger's avatar
      Merge branch 'feature/cmake-requires-c++14-support' into 'master' · 6878507d
      Christoph Grüninger authored
      [CMake] always use check for C++14
      
      This prevents users to run into compiler errors for unsupported
      compilers like GCC 4.8 or C++ std libraries with insufficient
      C++14 support.
      
      See merge request !120
      6878507d
    • Christoph Grüninger's avatar
      [CMake] always use check for C++14 · 98b52cc2
      Christoph Grüninger authored
      This prevents users to run into compiler errors for unsupported
      compilers like GCC 4.8 or C++ std libraries with insufficient
      C++14 support.
      98b52cc2
    • Christoph Grüninger's avatar
    • Steffen Müthing's avatar
      Merge branch 'feature/variadic-sizeof' into 'master' · 7518e8bd
      Steffen Müthing authored
      Implement workarounds for broken sizeof...
      
      This adds `Dune::SizeOf`  that can be use as `Dune::SizeOf<T...>::value` as a drop in replacement for `sizeof...(T)`. This is necessary because the latter is broken in clang<3.8.
      Because the bug also effects `std::index_sequence_for` we now __always__ provide our manually written fallback implementation `Std::index_sequence_for` that works around the bug by using `SizeOf`.
      
      As a rule of thumb you should always use `SizeOf` instead instead of `sizeof...` in variadic template aliases if you want to avoid compiling code that produces wrong results.
      
      See merge request !127
      7518e8bd
Loading