Hello PolyMLers,
Some time ago I proposed PolyML switch to building with the C++11 standard [0]. The main blocking issue that surfaced was Isabelle supporting Ubuntu 12.04 which ships without a C++11-enlightened compiler. In January 2019, Makarius bumped the supported Linux release to Ubuntu 14.04 [1] which has a C++11 compiler. Are there any remaining issues preventing a migration to C++11? Do people feel strongly for or against this? The immediate benefits are similar to what I listed in my original posting:
- PLock, PLocker, PCondVar implementations could all be deleted and dropped with std::mutex, std::lock_guard, std::condition_variable respectively - NORETURNFN could be replaced with [[noreturn]] - Bitmap could be dropped and replaced with std::vector<bool>
The general motivation here is reducing the maintenance overhead and allowing performance to evolve with libstdc++/libc++. I expect we could get a lot of mileage out of code clarity wins too (e.g. range-based for loops).
I haven?t CCed isabelle-dev because I think they would have no opinion on this topic, but Makarius if you think it?s relevant please loop them into this thread as well.
Thanks, Matt
[0]: http://lists.inf.ed.ac.uk/pipermail/polyml/2017-December/002125.html [1]: http://isabelle.in.tum.de/repos/isabelle/rev/88b8bc6a6e5f