Thread overview | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
December 15, 2012 Re: Compilation strategy | ||||
---|---|---|---|---|
| ||||
Attachments:
| On Sat, 2012-12-15 at 16:55 +0000, Russel Winder wrote: > A quick straw poll. Do people prefer to have all sources compiled in a single compiler call, or (more like C++) separate compilation of each object followed by a link call. Oh and I should have asked: do you do things differently when using: dmd gdc ldc for: programs shared libraries static libraries Thanks. -- Russel. ============================================================================= Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder@ekiga.net 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel@winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder |
December 15, 2012 Re: Compilation strategy | ||||
---|---|---|---|---|
| ||||
Attachments:
| On 15 December 2012 16:55, Russel Winder <russel@winder.org.uk> wrote: > A quick straw poll. Do people prefer to have all sources compiled in a single compiler call, or (more like C++) separate compilation of each object followed by a link call. > > Thanks. > > I do believe there are still some strange linker bugs that occur if you compile separately vs. single compilation. Don't ask for examples, it'll take me hours or days to hunt them down in my archives. :-) -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0'; |
December 15, 2012 Re: Compilation strategy | ||||
---|---|---|---|---|
| ||||
On Sat, Dec 15, 2012 at 06:42:27PM +0000, Iain Buclaw wrote: > On 15 December 2012 16:55, Russel Winder <russel@winder.org.uk> wrote: > > > A quick straw poll. Do people prefer to have all sources compiled in a single compiler call, or (more like C++) separate compilation of each object followed by a link call. > > > > Thanks. > > > > > I do believe there are still some strange linker bugs that occur if you compile separately vs. single compilation. Don't ask for examples, it'll take me hours or days to hunt them down in my archives. :-) [...] Isn't that just some compiler bugs that sometimes cause certain symbols not to be instantiated in the object file? IMO, such bugs should be fixed in the compiler, rather than force the user to compile one way or another. T -- Bare foot: (n.) A device for locating thumb tacks on the floor. |
December 15, 2012 Re: Compilation strategy | ||||
---|---|---|---|---|
| ||||
On Saturday, December 15, 2012 10:44:56 H. S. Teoh wrote:
> Isn't that just some compiler bugs that sometimes cause certain symbols not to be instantiated in the object file? IMO, such bugs should be fixed in the compiler, rather than force the user to compile one way or another.
Well obviously. They're bugs. Of course they should be fixed. But as long as they haven't been fixed, we have to work around them, which means compiling everything at once.
- Jonathan M Davis
|
December 16, 2012 Re: Compilation strategy | ||||
---|---|---|---|---|
| ||||
Attachments:
| On 15 December 2012 18:52, Jonathan M Davis <jmdavisProg@gmx.com> wrote: > On Saturday, December 15, 2012 10:44:56 H. S. Teoh wrote: > > Isn't that just some compiler bugs that sometimes cause certain symbols not to be instantiated in the object file? IMO, such bugs should be fixed in the compiler, rather than force the user to compile one way or another. > > Well obviously. They're bugs. Of course they should be fixed. But as long > as > they haven't been fixed, we have to work around them, which means compiling > everything at once. > > - Jonathan M Davis > Probably won't be easy (if bug still exists). To describe it (I'll try to find a working example later) - when compiled separately, both modules claim the symbol is extern to their scope. However when compiled under one compilation unit, the compiler has substantially more information regarding the symbol and sends it to the backend to be written. If I don't find it by Monday, you'll have to wait until the new year when I return. :-) -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0'; |
December 16, 2012 Re: Compilation strategy | ||||
---|---|---|---|---|
| ||||
Posted in reply to Iain Buclaw | On 12/15/2012 6:53 PM, Iain Buclaw wrote:
> Probably won't be easy (if bug still exists). To describe it (I'll try to find
> a working example later)
These things all belong in bugzilla. Otherwise, they will never get fixed.
|
December 16, 2012 Re: Compilation strategy | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright Attachments:
| On 16 December 2012 03:52, Walter Bright <newshound2@digitalmars.com> wrote: > On 12/15/2012 6:53 PM, Iain Buclaw wrote: > >> Probably won't be easy (if bug still exists). To describe it (I'll try >> to find >> a working example later) >> > > These things all belong in bugzilla. Otherwise, they will never get fixed. > > It likely is in bugzilla, but with thousands of open tickets, things get forgotten and suffer the same 'will never get fixed' rigmarole. -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0'; |
December 16, 2012 Re: Compilation strategy | ||||
---|---|---|---|---|
| ||||
Posted in reply to Iain Buclaw | On 12/16/2012 12:57 AM, Iain Buclaw wrote:
> It likely is in bugzilla, but with thousands of open tickets, things get
> forgotten and suffer the same 'will never get fixed' rigmarole.
On the other hand, not putting it in bugzilla will *guarantee* it is forgotten and never fixed.
And actually, several people regularly go through bugzilla removing dups, fixing what they can, resolving things that were corrected by other fixes, and drawing attention to others.
Very, very few get marked as "will not fix".
Nobody goes through the newsgroup doing this.
Bugzilla has its problems, but I've not seen a better way to do this.
|
December 16, 2012 Re: Compilation strategy | ||||
---|---|---|---|---|
| ||||
Attachments:
| On 16 December 2012 02:53, Iain Buclaw <ibuclaw@ubuntu.com> wrote: > On 15 December 2012 18:52, Jonathan M Davis <jmdavisProg@gmx.com> wrote: > >> On Saturday, December 15, 2012 10:44:56 H. S. Teoh wrote: >> > Isn't that just some compiler bugs that sometimes cause certain symbols not to be instantiated in the object file? IMO, such bugs should be fixed in the compiler, rather than force the user to compile one way or another. >> >> Well obviously. They're bugs. Of course they should be fixed. But as long >> as >> they haven't been fixed, we have to work around them, which means >> compiling >> everything at once. >> >> - Jonathan M Davis >> > > > Probably won't be easy (if bug still exists). To describe it (I'll try to find a working example later) - when compiled separately, both modules claim the symbol is extern to their scope. However when compiled under one compilation unit, the compiler has substantially more information regarding the symbol and sends it to the backend to be written. > Respective bugs, all been open for around 3 years. http://d.puremagic.com/issues/show_bug.cgi?id=3745 http://d.puremagic.com/issues/show_bug.cgi?id=3770 -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0'; |
December 16, 2012 Re: Compilation strategy | ||||
---|---|---|---|---|
| ||||
Posted in reply to Iain Buclaw | On Sunday, 16 December 2012 at 09:22:25 UTC, Iain Buclaw wrote: > Respective bugs, all been open for around 3 years. > > http://d.puremagic.com/issues/show_bug.cgi?id=3745 > http://d.puremagic.com/issues/show_bug.cgi?id=3770 Funny things also happen if you try to be clever by batching modules needing recompilation together (when doing incremental compilation): http://d.puremagic.com/issues/show_bug.cgi?id=8769 David |
Copyright © 1999-2021 by the D Language Foundation