Thread overview
[Issue 8016] (Regression git) Methods defined in external object files when template alias parameter is involved
May 03, 2012
Don
May 03, 2012
Don
May 03, 2012
Leandro Lucarella
May 03, 2012
Leandro Lucarella
May 03, 2012
Leandro Lucarella
[Issue 8016] Methods defined in external object files when template alias parameter is involved
May 03, 2012
Walter Bright
May 04, 2012
Walter Bright
May 04, 2012
Leandro Lucarella
May 03, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8016


Don <clugdbug@yahoo.com.au> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |clugdbug@yahoo.com.au


--- Comment #1 from Don <clugdbug@yahoo.com.au> 2012-05-03 00:39:41 PDT ---
As for bug 7745, with D2, it doesn't need -release -inline.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
May 03, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8016



--- Comment #2 from Don <clugdbug@yahoo.com.au> 2012-05-03 02:04:54 PDT ---
Here's what happens.
When parsing m2, it imports m1. The static assert forces it to run semantic on
f(). This instantiates template t.
t gets added to the list of instantiated templates *of module m2*.

Before the fix for bug 2962 was made, template t was written to m2.o with weak linkage. This was strictly unnecessary, but relatively harmless because of the weak linkage. But the template that was written may have been wrong, if it hit bug 2962. Now that bug 2962 is fixed, it writes f.

This pull request changes it so that it only writes f if it is part of a template, and will therefore have weak linkage. That still fixes all test cases in bug 2962.

https://github.com/D-Programming-Language/dmd/pull/920

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
May 03, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8016



--- Comment #3 from Leandro Lucarella <leandro.lucarella@sociomantic.com> 2012-05-03 03:21:07 PDT ---
> https://github.com/D-Programming-Language/dmd/pull/920

Looks like this test case is exposing more bugs than we were aware of!

This pull request fixes the original problem I had (compiling tango CDGC),
which is the test case without the forceSemantic() trick.

Using the forceSemantic() trick doesn't work in D1 but doesn't look like a regression, at least is present in 1.070 and 1.071.

The patch only fixes the problem partially though, with the patch you don't get the multiple definition error but you get an undefined reference error instead, so is a step forward but not a fix. But again, this is not a regression in D2, the problem is present at least before the fix for 2962.

I'll report another bug with the D1-only bug that's fixed by this pull request, so we can close that one when the pull is merged, but can keep this one open (but without the regression severity).

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
May 03, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8016



--- Comment #4 from Leandro Lucarella <leandro.lucarella@sociomantic.com> 2012-05-03 03:45:02 PDT ---
Added bug 8023.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
May 03, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8016


Leandro Lucarella <leandro.lucarella@sociomantic.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|pull                        |
           Severity|regression                  |normal


-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
May 03, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8016



--- Comment #7 from github-bugzilla@puremagic.com 2012-05-03 11:55:02 PDT ---
Commit pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/d420faebda45eb27596697594a61ecd2a6d3b3d7
Fix issue 8016 Regression Methods defined in external object files when
template alias parameter is involved

Make the fix for bug 2962 a bit less aggressive. Still passes all test cases for 2962.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
May 03, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8016


Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |bugzilla@digitalmars.com
         Resolution|                            |FIXED


-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
May 03, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8016



--- Comment #8 from github-bugzilla@puremagic.com 2012-05-03 13:28:18 PDT ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/fb797c20e97ccfe18e0ec483dc8373e8028991de Add test case for bug 8016

https://github.com/D-Programming-Language/dmd/commit/731fb84247f170d7de8ae091f90c61134e548c1e Merge pull request #921 from llucax/test8016

Add test case for bug 8016

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
May 04, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8016



--- Comment #9 from Walter Bright <bugzilla@digitalmars.com> 2012-05-03 20:19:02 PDT ---
The test cases were reverted because they failed in the auto-tester.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
May 04, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8016


Leandro Lucarella <leandro.lucarella@sociomantic.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|FIXED                       |INVALID


--- Comment #10 from Leandro Lucarella <leandro.lucarella@sociomantic.com> 2012-05-04 02:00:44 PDT ---
(In reply to comment #9)
> The test cases were reverted because they failed in the auto-tester.

This is because that patch only partially fix this issue, it seems that there are 2 issues in this test case and only one is being fix in the patch. The patch completely fixes bug 8023 though. So please re-apply pull #922 (now pull #923: https://github.com/D-Programming-Language/dmd/pull/923). Wait for the autotester to run to make sure is passing now that the fix for 8023 is merged.

I'm sorry I made such a mess of this bug report, but it was quite tricky because I kept discovering bugs exposed by it. I will close this bug as INVALID and open a new one with a proper description of the issue that is left after the patch.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------