Re: [eigen] Eigen2 to Eigen3 Migration Path |
[ Thread Index |
Date 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: Wed, 12 Jan 2011 09:41:23 -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=IGRDSe2KxGcQmJiKnbDScrtLckGYzltbo+6ZXM7X+0s=; b=eg0uRSI+tMbHSa3G1zobBBt/Fqa+GcfiN0dY4GqonFdKoEQeVuyCvddtiwBIzZSNPs 6m08K8/84PmmXcQ9io4Qt2/nGEce5gPqg3VM7/Wf0KeXXWVLF4GmA+1sjiZ/6Ge5qvui H4bwCDfMVruD8V/BG5ajP+AfZbOprLbnnWGII=
- 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=CNWmnL/CigCYFyq4fclx14YCT+JPrldvQ730p6f3rQo7pHkKyMehvSX+IjM5yKiSaf T9Zl0wF5Bu1jbg5jE5CnUl64nexd978E0FNs463KfrI5eBWfBrGpzXUkTyKwlsZKBzv3 j2rsEpxpW/Y4s/B5weTSwKQAnmycivqKNpM1Y=
2011/1/12 Benoit Jacob <jacob.benoit.1@xxxxxxxxx>:
> OK, thought about this some more.
>
> If EIGEN2_SUPPORT doesn't work for you, then here's what you can do:
>
> * about the namespace & mangling: go ahead with your Eigen -> Eigen3
> renaming, this is a non-issue.
Ah wait ... :) the linking is indeed a non-issue, but at compilation
time, if the same file includes another library's headers that uses
Eigen3 with the Eigen namespace non-renamed, this will fail.
Benoit
> Indeed, every .cpp files that makes
> Eigen calls, #includes the corresponding Eigen sources itself, so it
> will never have to link to another object file to find a function
> definition. This means that the only bad effect of this namespace
> renaming is at worst to have redundant code (the same function
> compiled with Eigen and with Eigen3) which is not a big deal since
> it's temporary. You won't get linking failures, and you won't
> accidentally link to the wrong function definition.
>
> * about the include guards and macros, first of all check if it is
> really the case that a single .cpp file really needs to include both
> eigen2 and eigen3, as opposed to separate .cpp files, some linking to
> eigen2 and some to eigen3 ?
>
> Benoit
>
> 2011/1/12 Benoit Jacob <jacob.benoit.1@xxxxxxxxx>:
>> 2011/1/12 Gael Guennebaud <gael.guennebaud@xxxxxxxxx>:
>>> On Wed, Jan 12, 2011 at 1:57 PM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx> wrote:
>>>> The trivial solution would have been to replace Eigen by Eigen3 and
>>>> EIGEN_ by EIGEN3_ everywhere in the Eigen3 sources, but that is quite
>>>> invasive at this stage.
>>>>
>>>> However, given that that solves the problem once and for all, also for
>>>> any future version, it's quite tempting.
>>>>
>>>> Would you agree with such a change?
>>>
>>> but think about the hundreds of projects which are already using
>>> Eigen3... I'm afraid this is much too late for such a change. Let's
>>> first see whether EIGEN2_SUPPORT could not solve the issue.
>>
>> My assumption here was that Eigen2 still has many more users than
>> Eigen3 has, but indeed experimental data proves me wrong:
>> http://stats.tuxfamily.org/eigen.tuxfamily.org/
>> I copied the list of visited pages on our website with number of
>> visits in January 2011, and did:
>>
>> bjacob@cahouette:~$ grep /dox/ stats | cut -f 2 -d ' ' | awk '{ SUM +=
>> $1} END { print SUM }'
>> 663
>> bjacob@cahouette:~$ grep /dox\-devel/ stats | cut -f 2 -d ' ' | awk '{
>> SUM += $1} END { print SUM }'
>> 617
>>
>> So we seem to have almost as many users on Eigen3 as we have on Eigen2.
>>
>> Solving the present problem with EIGEN2_SUPPORT would be great indeed.
>> Let's wait to hear back from Tully about that. We can probably extend
>> EIGEN2_SUPPORT to do many more things you may need.
>>
>> Benoit
>>
>>
>>>
>>> gael
>>>
>>>
>>>
>>
>