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
_______________________________________________
polyml mailing list
polyml@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/polyml

Reply via email to