[Dune-devel] Latest try with Dune and Windows (Visual Studio 2015 CTP 6)

Christoph Grüninger christoph.grueninger at iws.uni-stuttgart.de
Mon Mar 9 07:39:14 CET 2015


Hi Dune fellows,
the last weekend I gave the latest Visual Studio 2015 CTP 6 a 
try. Last
October, see [1],  I tried it with Visual Studio 2013 which 
was really
lacking some features and needed some unbeautiful code 
changes. During
the Christmas break I gave Microsoft's then latest Community 
Technology
Preview (Visual Studio 2015 CTP 4+) together with a CMake 3.1 
beta a
shot. The improvements were visible but so tiny, that I did 
not write
an email to keep you informed.

The announcement for VS 2015 CTP 5 and 6 were not very 
exciting. But
the changes helped a lot:
- dune-common: Only two patches necessary. One is for the 
broken Fortran
   support in CMake and unrelated to Visual Studio, sadly 
FS#1540 did not
   fix that. The other fix is a Unixism (unistd.h with 
getpagesize) which
   can be fixed by 10 lines of code after searching the 
internet for five
   minutes.
- dune-geometry: I was able to build libdunegeometry without 
any patch.
   Compared to the stupidity of reasons with older versions, I 
am
   impressed.
- dune-istl: as there is no library built, difficult to tell.
- dune-localfunctions: There were a bunch of path names 
exceeding the
   260 character path length limit. Really, Microsoft? It can 
be worked
   around, but not by us but the Visual Studio programmers 
have to use
   different function calls. Say hello to the 1980s!
- dune-grid: Here comes the bumper. In partitionset.hh we have 
the code

00103     template<unsigned int p>
00104     struct PartitionSet<partitions | p>
00105     operator+(const PartitionSet<p>& set) const
00106     {
00107       return PartitionSet<partitions | p>();
00108     }

   and MSVC does not like the template parameter in line 104. 
I am not sure,
   but is this a expression SFINAE? If yes, then we are 
unlucky as this
   feature needs major compiler changes which are excluded 
from Visual C++
   2015.


So we have to hope for Clang. The latest release 3.6.0 states 
in the
release notes:
   Clang can now self-host using the msvc environment on x86 
and x64
   Windows. This means that Microsoft C++ ABI is more or less 
feature-
   complete, minus exception support."
Well, nice but we need exception support. There were recently 
discussion
on their mailing list how this can be achieved. Let's hope for 
Clang 3.7.

All hail, Tux!
Christoph


[1] 
http://lists.dune-project.org/pipermail/dune-devel/2014-October/001097.html

-- 
Je n'ai rien contre les étrangers, quelques uns de mes 
meilleurs amis
sont des étrangers. Mais ces étrangers là ne sont pas de chez 
nous!
[Agecanonix, Astérix - Le cadeau de César]




More information about the Dune-devel mailing list