[config][pathscale] Configurations for older versions

Looking at the failures for patchscale, they seem to be happening because the configuration is only set for '__PATHCC__ >= 4' and tests are run using Pathscale 3.2. This is a new configuration file so I think we should revert it on the release branch and try to fix it on trunk for 1.47. I don't know anything about the compiler, but for a start I think we should at least set the 'BOOST_NO_' macros for all versions. Does that sound reasonable? Daniel

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Please find the attached email Christopher asked me to forward. He's not subscribed to Boost-devel and please cc him on future replies. I'm to help any Boost developer that has any issues. Just let us know. On Sat, 22 Jan 2011 12:33:36 +0700 "C. Bergström" <cbergstrom@pathscale.com> wrote:
Daniel James <dnljms <at> gmail.com> 2011-01-21 22:08:49 GMT Looking at the failures for patchscale, they seem to be happening because the configuration is only set for '___PATHCC___ >= 4' and tests are run using Pathscale 3.2. This is a new configuration file so I think we should revert it on the release branch and try to fix it on trunk for 1.47.
This is a recent configuration change done by design and has been extensively tested with the new version. EKOPath 4 was just released and we're already in discussion with Sandia to get the test machine updated asap. Please be patient while that's worked out.
I don't know anything about the compiler, but for a start I think we should at least set the 'BOOST__NO__' macros for all versions. Does that sound reasonable?
I'm happy to work with any boost developer interested in our compiler. There's a number of significant improvements in 4.0 for C++, but it broke compatibility between 3.x. I hope we can submit results very soon which reflect the hard work put into this.
Best,
Christopher
- -- Bryce Lelbach aka wash boost-spirit.com -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iEYEARECAAYFAk06bhIACgkQ9cB/V3/s9EzyOQCghPKm/aOeWchJJhNg1tg2kPli Q90An28JH33qrYZmYzOTTYI1OkuhrY1p =ifeI -----END PGP SIGNATURE-----

On Sat, 22 Jan 2011 12:33:36 +0700 "C. Bergström" <cbergstrom@pathscale.com> wrote:
This is a recent configuration change done by design and has been extensively tested with the new version. EKOPath 4 was just released and we're already in discussion with Sandia to get the test machine updated asap. Please be patient while that's worked out.
That's fine but we shouldn't gratuitously break what support there is for older versions of the compiler. For example, the configuration no longer defines BOOST_NO_RVALUE_REFERENCES for older versions. So the type traits library defines type traits using rvalue references which fail to compile. This breaks a lot of boost that used to work with pathscale 3.2. Some basic configuration for older versions would fix that. I guess that in the past since there was no configuration file for pathscale, the gcc file was used and was a close enough estimate that some things worked, the new configuration file has removed that. Daniel

This is a recent configuration change done by design and has been extensively tested with the new version. EKOPath 4 was just released and we're already in discussion with Sandia to get the test machine updated asap. Please be patient while that's worked out.
That only fixes our regression tests, it doesn't help users who may still be using version 3.x. I also note that the logic in the pathscale.hpp is completely backwards - it should be something like: #if NAME <= VERSION1 // define defect macros for version 1 or less #define BOOST_NO_FOO1 #endif #if NAME <= VERSION2 // define defect macros for version 2 or less #define BOOST_NO_FOO2 #endif #if NAME >= VERSION1 // define optional feature macros for version 1 newer #define BOOST_HAS_FOO1 #endif #if NAME >= VERSION2 // define optional feature macros for version 2 newer #define BOOST_HAS_FOO2 #endif If pathscale is still a flavor of gcc then I agree we should probably revert this for this release, and fix properly for the next one. Regards, John.

This is a recent configuration change done by design and has been extensively tested with the new version. EKOPath 4 was just released and we're already in discussion with Sandia to get the test machine updated asap. Please be patient while that's worked out.
That's fine but we shouldn't gratuitously break what support there is for older versions of the compiler. For example, the configuration no longer defines BOOST_NO_RVALUE_REFERENCES for older versions. So the type traits library defines type traits using rvalue references which fail to compile. This breaks a lot of boost that used to work with pathscale 3.2. Some basic configuration for older versions would fix that. I guess that in the past since there was no configuration file for pathscale, the gcc file was used and was a close enough estimate that some things worked, the new configuration file has removed that.
Update: I've just had a plea from the folks at pathscale not to revert any changes - they intend to make sure that their customer base upgrades to the 4.x compiler ASAP. So... the plan B would be to change select_compiler.hpp to only forward to pathscale.hpp when __PATHSCALE__ >= 4. Thoughts? John.

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Sat, 22 Jan 2011 17:12:18 -0000 John Maddock <boost.regex@virgin.net> wrote:
So... the plan B would be to change select_compiler.hpp to only forward to pathscale.hpp when __PATHSCALE__ >= 4.
I wrote it to do this. If it doesn't do it, then someone reverted/changed it. - -- Bryce Lelbach aka wash boost-spirit.com -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iEYEARECAAYFAk07F6YACgkQ9cB/V3/s9EzXTwCfYwOeuytyVjUjSuFqbMcqCCh5 kjEAn1VmPMBEBjz5NMUCbOn71gX1krwS =y5jM -----END PGP SIGNATURE-----

----- Original Message ----- From: "Bryce Lelbach" <admin@thefireflyproject.us> To: <boost@lists.boost.org> Sent: Saturday, January 22, 2011 6:45 PM Subject: Re: [boost] [config][pathscale] Configurations for older versions
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Sat, 22 Jan 2011 17:12:18 -0000 John Maddock <boost.regex@virgin.net> wrote:
So... the plan B would be to change select_compiler.hpp to only forward to pathscale.hpp when __PATHSCALE__ >= 4.
I wrote it to do this. If it doesn't do it, then someone reverted/changed it.
select_compiler.hpp constains #elif defined __PATHSCALE__ // PathScale EKOPath compiler (has to come before clang and gcc) # define BOOST_COMPILER_CONFIG "boost/config/compiler/pathscale.hpp" and boost/config/compiler/pathscale.hpp add difies only if __PATHCC__ >= 4. #if __PATHCC__ >= 4 # define BOOST_MSVC6_MEMBER_TEMPLATES ... I think the best will to don't change select_compiler.hpp and if __PATHCC__ < 4 include boost/config/compiler/gcc.hpp in the file pathscale.hpp. Best, Vicente

So... the plan B would be to change select_compiler.hpp to only forward to pathscale.hpp when __PATHSCALE__ >= 4.
I wrote it to do this. If it doesn't do it, then someone reverted/changed it.
Nope: https://svn.boost.org/trac/boost/changeset/67707 The plan would be to change to: Index: select_compiler_config.hpp =================================================================== --- select_compiler_config.hpp (revision 68366) +++ select_compiler_config.hpp (working copy) @@ -52,7 +52,7 @@ // Comeau C++ # define BOOST_COMPILER_CONFIG "boost/config/compiler/comeau.hpp" -#elif defined __PATHSCALE__ +#elif defined(__PATHSCALE__) && (__PATHSCALE__ >= 4) // PathScale EKOPath compiler (has to come before clang and gcc) # define BOOST_COMPILER_CONFIG "boost/config/compiler/pathscale.hpp" John.
participants (4)
-
Bryce Lelbach
-
Daniel James
-
John Maddock
-
vicente.botet