Re: [eigen] Compilation errors introduced by recent changes. (aligned stl types & MatrixType rename) |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] Compilation errors introduced by recent changes. (aligned stl types & MatrixType rename)
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Thu, 22 Apr 2010 07:11:38 -0400
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:received:message-id:subject:from:to:content-type :content-transfer-encoding; bh=zlIePhFt4gqovLrUqOBq4PrdnzTFhlPrYS9DKVJYgoI=; b=XkPGItYBu3PZFd64bPGOopX5NrZPFkuUYGN14gVINqGqt/ig2unz9A/v6nm3uzzIIa TnTHSjKzAxbbkYE2ps92wUeWfiuQrvD9/VtppQh1q1q+cClfpctPTy6MVH+16+iL5TYL YtYbjjxlT4HykOYCNLtF8bJRVifEVmDfscCA8=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=lpVfGEduolJFCGsXCbGT7tIT7w4Fa7wXvP3WtS9QAweb4+uU89AOn4KrHeJtPKOY+3 Vwa+mYveDBdnSNuTwTJ9wvIJkMytxlIjpzPrei3YvT1Dw7Zel5mV+FQ+gJPXcdw7jSEc jCsOCT9Ktgk/0SkhEFs61LfxIstioZFcJxdIA=
2010/4/22 Eamon Nerbonne <eamon.nerbonne@xxxxxxxxx>:
> I tried; the problems were introduced with the MatrixType renaming change..
> Backing out that changeset fixes things; so that's what I've done locally.
> It's probably an MSC bug related to scoping of template parameters
> interacting with, say, inheritance - but I haven't spotted the exact cause.
I don't understand: this renaming change, AFAICR, was only that, a
renaming change, how can MSC be sensitive to the particular choice of
names used for template parameters? Will it refuse to compile
Microsoft<corrupts_ISO_committees> ?
Benoit
> --eamon@xxxxxxxxxxxx - Tel#:+31-6-15142163
>
>
> On Thu, Apr 22, 2010 at 08:03, Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx>
> wrote:
>>
>> It probably has to do with the include order. Only Constants.h is
>> included before ForwardDeclarations.h. This is a whole different story
>> for Assign.h.
>>
>> Though you are right. I am also getting more and more puzzled. In
>> particular since now VS 2008 users are affected and it confuses my why
>> we are seeing this just as of now. If I find time, I might try a
>> bisection to find the erroneous commit.
>>
>> - Hauke
>>
>> On Thu, Apr 22, 2010 at 4:48 AM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
>> wrote:
>> > What I don't understand is that this kind of construct, setting the
>> > default value for a template param as an expression depending on other
>> > template params via templates, is not isolated in eigen, we had lots
>> > of that already in 2.0, for example in Assign.h, ei_assign_impl:
>> >
>> > template<typename Derived1, typename Derived2,
>> > int Traversal = ei_assign_traits<Derived1, Derived2>::Traversal,
>> > int Unrolling = ei_assign_traits<Derived1, Derived2>::Unrolling>
>> > struct ei_assign_impl;
>> >
>> > So why is this one failing?
>> >
>> > Just trying to understand how to construct a work-around.
>> >
>> > Benoit
>> >
>> > 2010/4/21 Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx>:
>> >> Guys, I am sorry and afraid that no Visual Studio system seems to be
>> >> able to compile Eigen's devel branch at the moment. I already filed a
>> >> bug report yesterday night.
>> >>
>> >> It is located here (http://tinyurl.com/y2onuvg), reproducible and
>> >> currently under investigation. I have already spent a lot of time to
>> >> find a workaround - Benoit did as well, and we have no solution at the
>> >> moment.
>> >>
>> >> You can verify that it is the bug I submitted by modifying the file
>> >>
>> >> Eigen/src/Core/util/ForwardDeclarations.h
>> >>
>> >> by changing the Block forward declaration to
>> >>
>> >> template<typename MatrixType, int BlockRows=Dynamic, int
>> >> BlockCols=Dynamic,
>> >> int _DirectAccessStatus = HasDirectAccess
>> >> /*ei_block_direct_access_status<MatrixType>::ret*/> class Block;
>> >>
>> >> This is no (!) solution! It is just a way to compile the most trivial
>> >> Eigen code based on matrices.
>> >>
>> >> The sample code from the bug report does not compile with VS 2010 and
>> >> my assumption is that it does neither with VS 2008.
>> >>
>> >> We have to wait for Microsoft or some smart person to come up with a
>> >> fix for this serious show stopper.
>> >>
>> >> - Hauke
>> >>
>> >> On Wed, Apr 21, 2010 at 7:03 PM, Ilya Baran <baran37@xxxxxxxxx> wrote:
>> >>> Hi,
>> >>>
>> >>> I'm getting this error on MSVC 2008 and MSVC 2010, so I don't think
>> >>> it's an MSVC 2010 bug.
>> >>>
>> >>> Thanks,
>> >>>
>> >>> -Ilya
>> >>>
>> >>> On Wed, Apr 21, 2010 at 12:55 PM, Eamon Nerbonne
>> >>> <eamon.nerbonne@xxxxxxxxx> wrote:
>> >>>> On Wed, Apr 21, 2010 at 18:30, Hauke Heibel
>> >>>> <hauke.heibel@xxxxxxxxxxxxxx>
>> >>>> wrote:
>> >>>>>
>> >>>>> Ok, having that said, when you reported the issue even this (correct
>> >>>>> code)
>> >>>>>
>> >>>>> std::vector<Vector2d, Eigen::aligned_allocator<Vector2d> >
>> >>>>> stlvec(10,
>> >>>>> Vector2d());
>> >>>>>
>> >>>>> failed which I fixed now.
>> >>>>
>> >>>> Oops - I see my example was a little hasty indeed.
>> >>>>
>> >>>>>
>> >>>>> If you hit any other issues please let me know.
>> >>>>>
>> >>>>
>> >>>> Well, I still can't compile anything including eigen after Benoit's
>> >>>> changeset labelled "renaming (MatrixType ---> whatever appropriate)
>> >>>> ..."
>> >>>> from the 18th - since you haven't run into it, I take it that this
>> >>>> compilation error is due to a bug in the RC that's been fixed in 2010
>> >>>> RTM?
>> >>>>
>> >>>> Even the following won't compile in the latest version:
>> >>>> #include "Eigen/Core"
>> >>>> int main(){ return 0;}
>> >>>>
>> >>>> That results in 11 "error C2065: 'MatrixType' : undeclared
>> >>>> identifier"
>> >>>> errors.
>> >>>>
>> >>>>
>> >>>
>> >>>
>> >>>
>> >>
>> >>
>> >>
>> >
>> >
>> >
>>
>>
>
>