Re: [eigen] The horrors of an XLC port/compatibility

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


2010/1/23 Aron Ahmadia <aja2111@xxxxxxxxxxxx>:
> Hi List,
>
> As Benoit suggested earlier, I did a clean pull from the Eigen
> repository to verify that I hadn't improperly backed out of my hg
> commit.  The resulting diff from the sources after fixing Macros.h is
> here:
>
> changeset:   2355:6e2747dd61a5
> user:        Thomas Capricelli <orzel@xxxxxxxxxxxxxxx>
> date:        Fri Jan 22 19:26:29 2010 +0100
> summary:     fix the script again (definitely?) + cleaning
>
> aron@fen1:~/scratch/eigen% hg diff
> diff -r 6e2747dd61a5 Eigen/src/Core/util/Macros.h
> --- a/Eigen/src/Core/util/Macros.h      Fri Jan 22 19:26:29 2010 +0100
> +++ b/Eigen/src/Core/util/Macros.h      Sat Jan 23 08:54:57 2010 +0300
> @@ -218,6 +218,8 @@
>  #elif (defined __SUNPRO_CC)
>   // FIXME not sure about this one:
>   #define EIGEN_ALIGN_TO_BOUNDARY(n) __attribute__((aligned(n)))
> +#elif (defined __IBMCPP__)
> +  #define EIGEN_ALIGN_TO_BOUNDARY(n) __attribute__((aligned(n)))
>  #else
>   #error Please tell me what is the equivalent of
> __attribute__((aligned(n))) for your compiler
>  #endif
>
> Now I'm still getting the same error message here:
>
> cd /home/aron/scratch/build/unsupported/test &&
> /bgsys/drivers/V1R4M0_320_2009-090815P/ppc/comm/bin/mpixlcxx_r  -+  -O
> -DNDEBUG -I/home/aron/scratch/build/unsupported/test
> -I/home/aron/scratch/eigen/unsupported/test -I/home/aron/scratch/eigen
> -I/home/aron/scratch/build
> -I/home/aron/scratch/eigen/unsupported/test/../../test
> -DEIGEN_TEST_FUNC=alignedvector3   -o
> CMakeFiles/alignedvector3.dir/alignedvector3.cpp.o -c
> /home/aron/scratch/eigen/unsupported/test/alignedvector3.cpp
> "/home/aron/scratch/eigen/Eigen/src/Core/SelfAdjointView.h", line
> 145.79: 1540-0716 (S) The template argument "Eigen::SelfAdjointView"
> does not match the template parameter "class T".
>
>
> This is a clean Eigen source file, and there's no 'class T' parameter
> anywhere in sight.  My suspicion was that the compiler was choking on
> something upstream, so my modifications were not to that file, but to
> the parameter list for TriangularBase.

Ah, I see. Sorry for putting the blame on you when it was the compiler ;)

>
> We've decided that what I did was wrong, but I still need to figure
> out a way to make the compiler stop choking on these files.

Hm. That's really hard to figure out when the compiler error messages
are so unhelpful!
I understand now why you said that the lines numbers wouldn't help.

>  In the
> past, I've danced around these template parameter errors by loosening
> the requirement for specialization.  What I can try to do now is
> ensure that the compiler is aware of the template methods/classes
> being used by double-checking all of the forward declarations.
>
> Anyway, the way the error is being reported is certainly a compiler
> bug, so I will also dispatch this to the IBM Compiler folks.  It's
> very possible that this is an internal compiler error.

Good idea!

>
> Thanks for your attention on this Benoit.

You're welcome.
I'd really like to see Eigen used more on IBM supercomputers, if only
for the prestige of it :)

Benoit



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/