> On May 19, 2019, at 04:51, Makarius <makar...@sketis.net> wrote: > > On 19/05/2019 05:57, Matthew Fernandez wrote: >> >> 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: > > First note that I am presently busy with the Isabelle2019 release (and > will be on travel after its launch in a few weeks). > > > For Isabelle technology (which also includes Poly/ML), I am generally in > favour to use what is both "current" and "stable" -- the precise meaning > of that is up to judgment by experts, but I am not an export of C++. > > This often means to use the latest release version, but sometimes latest > -1. (Current examples for -1 in Isabelle: scala, Haskell stack; latest: > java-11, although some users might prefer -1 here.)
For some context, the ISO C++ standards are C++98, C++03, C++11, C++14, C++17 and the forthcoming C++20. If you do not set the C++ standard via command line flags (-std= for GCC and Clang, /std: for MSVC), you get whatever version of the standard that compiler release decided was a sensible default. This is the situation PolyML is currently in. The standards are roughly backwards compatible, so in practice this means if you don’t explicitly set a standard you’re stuck with the ad hoc subset of commonly implemented features prior to 1998. IMHO C++11 is the first version of the standard that brings some well-needed sanity to the language. In particular, threading and locks are in the standard, obviating the need for libraries to write their own abstraction layer over POSIX/Windows. The features added by C++14 and C++17 are less revolutionary and unlikely to be of immediate use to PolyML. > BTW, for Poly/ML on Windows, there is still a slightly odd situation > that its canonical build process is stuck with a very old version of g++ > on MingW: > http://isabelle.in.tum.de/repos/isabelle/file/acc1749c2be9/Admin/polyml/INSTALL-MinGW > > I would like to see this bumped eventually, independently of the C++11 > question. If I understand the version numbering correctly, those MinGW versions are derived from GCC 4.9.3 which supports C++11. _______________________________________________ polyml mailing list polyml@inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml