A long thread has been mulling over the build system consequences of
merging FFC and UFC into one 'package':
http://fenicsproject.org/pipermail/fenics/2014-January/000896.html
The crux of it is the different build systems used by FFC (Python
distutils) and UFC (CMake). UFC uses CMake because of the dependency on
boost::shared_ptr.
If we were to switch to std::shared_ptr, using distutils for both FFC
and UFC should be straightforward. However, std::shared_ptr is part of
the C++11 standard and would require a compiler that supports at least
the std::shared_ptr part of the standard.
The question therefore is should we switch from boost::shared_ptr to
std::shared_ptr in DOLFIN? To start things off:
* Pros:
- Makes FFC and UFC packaging simple
- Use system provided STL (shared_ptr, unordered_set, unordered_set,
etc)
- We can start using other useful C++ features from the new standard,
e.g. auto:
for (std::vector<<<..............> > >::const_iterator itr =
myvec.cbegin(); itr != myvec.cend(); ++itr)
becomes
for (auto itr = myvec.cbegin(); itr != myvec.cend(); ++itr)
* Cons
- Lack of C++11 support in old compilers. This is unlikely to be a
problem on desktops. Any issues are most likely to be on older clusters.
It does appear that std::shared_ptr has been available for major
compilers (GCC/Clang/Intel/IBM/Microsoft) for quite some years.
Garth
_______________________________________________
fenics mailing list
[email protected]
http://fenicsproject.org/mailman/listinfo/fenics