On 13/11/2015 22:27, Edward Diener wrote:
On 11/13/2015 2:45 PM, Blower, Melanie wrote:
A few years ago, circa 2010, the Intel 12.x compiler was released without having a correct value for the macro __INTEL_COMPILER. It was released using the development-only version number 9999 instead of the correct value 12xx. Later on, an Intel 12.x compiler was updated to remove this problem and the version number made correct.
You did not explain why the check for '9999' causes problems or why it is incorrect in the cases in which it is used.
Intel use version 9999 for their internal testing of the next release, but a compiler with that version number accidentally slipped out into the wild as well. Boost.Config has no way of distinguishing between them, I'm not sure, but this may effect users beta-testing Intel's products as well as their development team.
Meanwhile, since boost needed to add some workarounds, there was code added in a couple of boost files to check for version 9999. The check for 9999 in boost causes trouble in our current development compiler in-house testing. Is it possible to have this version checking removed from the boost sources? There's no advantage to boost users, and possibly a disadvantage if someone is still using a not-updated 12.x compiler. But hopefully that is unlikely, we're currently shipping our 16.x compiler.
Whether you think a Boost library should support older versions of a compiler or not it is up to the library implementor what versions of a given compiler are supported. It is usually considered rude to drop support for a compiler/version in a particular Boost library without making some prior announcement about it and waiting at least one release after the announcement.
That's normally true. However, in this case the effected version appears to be no longer available from Intel's site - only 12.0 update 5 and later - so I guess I'm somewhat sympathetic to the change in this case. John.