|Re: [eigen] Eigen2 to Eigen3 Migration Path|
[ Thread Index |
| More lists.tuxfamily.org/eigen Archives
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] Eigen2 to Eigen3 Migration Path
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Fri, 14 Jan 2011 10:30:43 -0500
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type:content-transfer-encoding; bh=Eg/mB3a8+AASkH3xGJoIfZ1A5KiirxHkzLRnp2T50fE=; b=Y1PPd5icmeUxSXeBwWPG9qv1NJJA5hAJ4Upes6a3WoxIdFJKKvOVTgqaresZCW6Lt8 mFit3z9N30COcDzNRiGctdAXagb9bLa2iXPV4uq2IuksRGQRf6z2nTo+z029MwzHuFfS qOpYsNsyFTJMXwg8JV4j9bmiKNRcM69N4vcd0=
- 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=BQhGQgWXmV27vHlc1Pu1P0VgmK6cy57jV5ZH10xUlgb18JMVaQa5NGOaIPRm6yazRG 0sYeTcLGjRMLn6ZLLQpcXan5eXhIGzJgNFtWkh30Q1W5tlvyS2DE9GN9Co4GvX77KCxE fbfrAiCef1eHT+CGlw2njdl1aWSWshAfQtutY=
2011/1/14 Tully Foote <tfoote@xxxxxxxxxxxxxxxx>:
> On 01/13/2011 09:06 PM, Benoit Jacob wrote:
> 2011/1/13 Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx>:
> On Thu, Jan 13, 2011 at 12:13 AM, Gael Guennebaud
> <gael.guennebaud@xxxxxxxxx> wrote:
> The EIGEN2_SUPPORT way seems much more powerful. Let's be specific. If
> project A wants to use Eigen3 as well as a lib B which relies on
> Eigen2 then there are two cases:
> 1 - lib B is a pure template lib (or at least the parts which rely on
> Eigen2) then EIGEN2_SUPPORT should do the job (we can make it better
> if needed).
> 2 - lib B is a binary library with a public API involving Eigen2
> objects. Then there is still the possibility to recompile B with
> 3 - lib B is a binary library without Eigen2 in the public API. Again, there
> exists the possibility to recombile B with Eigen3+EIGEN2_SUPPORT.
> Asumming for a moment we had Eigen:: and Eigen3:: namespaces. This would
> imply the following things.
> OK, so let's focus for now on Gael's solution (tell people to use
> Eigen3 + EIGEN2_SUPPORT) plus my suggestion to make EIGEN2_SUPPORT as
> complete as possible and validated by the actual eigen2 test suite. At
> least it doesn't hurt anyone.
> It's true that if Eigen3 + EIGEN2_SUPPORT were 100% API compatible
> with Eigen2 then the lack of ABI compatibility wouldn't be a big
> problem anymore since switching would be virtually costless.
> I believe that if we do have full coverage of the Eigen2 API with
> Eigen3+EIGEN2_SUPPORT this would be fine for our use cases. We would just
> compile all libraries against EIgen3+EIGEN2_SUPPORT instead of Eigen2.
> Regarding kdl (http://www.orocos.org/kdl), I tried to compile it
> against Eigen3+EIGEN2_SUPPORT and the major hickup I am seeing is caused by
> Map's const-correctness. We should be able to fix that through the plugin by
> re-enabling the non-const constructor of Maps though I did not properly
> think this over.
> Ah, ok. It should be quite easy to allow non-const-correct Map
> constructors with EIGEN2_SUPPORT.
Great to see a solution on the horizon. Now we need to implement it. I
filed a bug:
I marked it as blocking 3.0, as it doesn't really need to be tested in
a beta. Could even not block 3.0 actually, but I have a feeling that
that can be implemented quickly.