Boost logo

Boost Users :

From: Beman Dawes (bdawes_at_[hidden])
Date: 2007-10-19 14:22:17


Marty Fried wrote:
> Back on Fri, 19 Oct 2007 11:37:11 +0200, in gmane.comp.lib.boost.user,Markus
> Schöpflin <markus.schoepflin_at_[hidden]> wrote:
>
> ...
>
>> No worry, I just remembered that we have regression test runs for xlC on
>> the trunk. See
>> http://beta.boost.org/development/tests/trunk/developer/summary.html for
>> details on the state of xlC. Looks like xlC has its problems with boost code.
>
> I seems to me that something strange is going on; I'm not able to even
> compile the filesystem library without errors. It seems like the regression
> tests succeeded with the compile and link, if I'm reading it correctly.
> Could it be that the test is done with an older version of xlC, that may not
> have checked for this condidtion? We are using version 8; version 9
> recently came out.

You can tell what version of a compiler is being used by looking at the
config library's conf_info output. For the current regression results,
it's reporting:

IBM Visual Age version 900
     _CHAR_UNSIGNED =1
     _CPPUNWIND =1
     __cplusplus =199711L
     __STDC__ =0
     _WCHAR_T =1
     __CHAR_UNSIGNED__ =1
     __EXCEPTIONS =1
     __powerpc__ =1
     _WCHAR_T =1
     __IBMCPP__ =900

> I want to go back to aix and try the exact command line listed for the vacpp
> test output, to see what result I get. I'll report back.

Another aspect is that our tests are running on the code as it currently
stands, not on the 1.34.1 code.

>> Hmm, cxx has this to say:
>>
>> cxx: Error: foo.cxx, line 6: Cannot create variable "f" of incomplete type
>> "foo<int>".
>> detected during instantiation of
>> "void templatefunc<T>() [with T=int]" at line 11
>> foo<int> f;
>> ------------^
>>
>> Now I'm left wondering why the tests on Tru64 don't show this error. Just
>> to be sure, do you get the error while compiling the filesystem lib itself
>> or while using the compiled filesystem lib?
>>
>> If you get the error during compilation of the library, are you sure that
>> above code is a valid reproducer for the original problem? (I'm not
>> implying that it isn't, I just want to make sure it is.)
>
> I believe the test case is valid, but there is one difference that may
> matter here... the test case has one less level of indirection than the
> actual code. We didn't think it made a difference, and we wanted to
> simplify as much as possible; the test showed that the error is caught by
> xlC and Comeau, but not by gcc or msvc. However, it could be that one more
> level of indirection is needed to hide the error from Tru64, too. In other
> words, maybe Tru64 is better than gcc and MSVC at finding this test case
> error, but not as good as xlC/Comeau with one more level of indirection to
> mask it. Would you like me to modify the test case?
>
> I appreciate your looking into this - I was worried you might dismiss it as
> a problem with an unsupported compiler - not that I think it really is that
> simple. Assuming it's really an error, it will probably eventually become a
> problem with a supported compiler.

If the code isn't standard compliant, I'd like to fix it. But it looks
like version 9 of vacpp is accepting it, or possible the code has
changed enough that the problem no longer exists.

> Please let me know what I can do next to help out.

If you get some sample code that you think exactly reproduces the
problem, and Comeau reports an error, please send it to me.

Thanks,

--Beman


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net