Hi David et al,
While experimenting with some of the recent PolyML commits, I realised the build system doesn?t seem to set any particular C++ standard. I guess this results in the compiler default (e.g. GNU++14 in the latest GCC [0]). Is this intentional?
Relatedly, coming up on 2018 it seems like it would be reasonable to require a compiler with C++11 support. I?m not sure how backwards compatible PolyML needs to be these days, but e.g. support for Windows 95/98 has been dropped. I notice some comments in interpreter.cpp that imply whatever is in Debian stable is a lower bound. Moving to C++11 would allow some parts of the code base to be replaced with their C++11 equivalents, reducing the maintenance burden. Some candidates:
- Bitmap -> std::vector<bool> - NORETURNFN -> [[noreturn]] - PCondVar -> std::condition_variable - PLock -> std::mutex - PLocker -> std::lock_guard
Perhaps this will provide a performance boost as well, but I wouldn?t necessarily count on it.
I?d be curious to hear if anyone has strong feelings about this or if any PolyML devs out there are living with a pre-C++11 compiler.
Thanks, Matt
[0]: https://gcc.gnu.org/onlinedocs/gcc/Standards.html#C_002b_002b-Language