Thread overview | ||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
October 10, 2006 [Issue 424] New: Unexpected OPTLINK Termination at EIP=0044C37B | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=424 Summary: Unexpected OPTLINK Termination at EIP=0044C37B Product: D Version: unspecified Platform: PC URL: http://www.digitalmars.com/d/archives/digitalmars/D/bugs /306.html OS/Version: Windows Status: NEW Severity: blocker Priority: P1 Component: DMD AssignedTo: bugzilla@digitalmars.com ReportedBy: someanon@yahoo.com I have some generated D code in a single source file ~ 30K LOC. On Windows I can compile it but cannot link it. (On Linux, there's no problem.) Some web search leads me to the following, which seems related to the problem. I wonder if OPTLINK can be fixed now. http://www.digitalmars.com/d/archives/digitalmars/D/bugs/306.html Sun, 30 May 2004 20:54:18 -0700 "Walter" <newshound xx digitalmars.com> writes: This happens when there are more than 16,000 fixups in a single .obj. Unfortunately, this isn't fixable at the moment. http://www.digitalmars.com/d/archives/digitalmars/D/bugs/8283.html http://www.digitalmars.com/d/archives/digitalmars/D/bugs/306.html http://www.digitalmars.com/d/archives/digitalmars/D/41323.html -- |
October 15, 2006 [Issue 424] Unexpected OPTLINK Termination at EIP=0044C37B | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=424 bugzilla@digitalmars.com changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|blocker |normal ------- Comment #1 from bugzilla@digitalmars.com 2006-10-14 23:17 ------- While important, I don't think it's a blocker. 30,000 lines of code in one module is unusually large, and can be split into smaller source files. -- |
October 16, 2006 [Issue 424] Unexpected OPTLINK Termination at EIP=0044C37B | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=424 ------- Comment #2 from someanon@yahoo.com 2006-10-15 22:07 ------- (In reply to comment #1) > While important, I don't think it's a blocker. 30,000 lines of code in one module is unusually large, and can be split into smaller source files. > It is a blocker at least for one user :-) OK, let me elaborate a little more where I come from, and all the problems I've encountered: When I started to use D on a hobby project, I organize the source code into modules as everyone typically does, but because of bug 386: http://d.puremagic.com/issues/show_bug.cgi?id=386 I was so frustrated that I cannot get my code compile separately, and the compiler error message is useless, each time I spent hours and hours on them and cannot get them fixed. So I write some script to concat all my source files (togather with some generated ones) into a single huge .d file, and comment out all the 'module' and 'import' statements. Then everything works. After bug 386 is fixed. I tried to compile each source file separately again, now I no longer have 'import conflicts' problems, but I still cannot get many of the file compiled, the compiler just hangs: I guess it run into some infinite loop. But unfortunately I cannot isolate the issue to send you a test case. (search "infinite loop" on digitalmars.com will show some user report: e.g. http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=digitalmars.D&artnum=42668 But I'm not sure, it's the same issue as mine.) Then I went back to my original approach to generate a huge source file (and it works); but maybe as my project grows, at certain point, it stops to link on Windows. (On Linux, it's fine). And this is a OPTLINK problem. I hope you can fix it. Or as a workaround: if the generate obj is too large (> 16,000 fixups, I really don't understand what does it mean), can the compiler split the obj into several obj files? e.g. foo1.obj, foo2.obj, ... If you ask the user the split the generated source files, first it's tedious, and it maybe run into some compiler problem, like the import one again. So please fix this issue: 1) remove the (> 16,000 fixups) constraint. It is a bug anyway. 2) or, the compiler automatically generate multiple .obj files, if (> 16,000 fixups) Thanks. -- |
October 16, 2006 [Issue 424] Unexpected OPTLINK Termination at EIP=0044C37B | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=424 ------- Comment #3 from someanon@yahoo.com 2006-10-15 22:09 ------- Another "infinite loop" user report, maybe related: http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=D.gnu&artnum=2134 -- |
October 16, 2006 Re: [Issue 424] Unexpected OPTLINK Termination at EIP=0044C37B | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | d-bugmail@puremagic.com wrote:
> ------- Comment #3 from someanon@yahoo.com 2006-10-15 22:09 -------
> Another "infinite loop" user report, maybe related:
>
> http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=D.gnu&artnum=2134
Doesn't infinite loop on current dmd.
|
October 16, 2006 Re: [Issue 424] Unexpected OPTLINK Termination at EIP=0044C37B | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | d-bugmail@puremagic.com wrote:
> After bug 386 is fixed. I tried to compile each source file separately again,
> now I no longer have 'import conflicts' problems, but I still cannot get many
> of the file compiled, the compiler just hangs: I guess it run into some
> infinite loop. But unfortunately I cannot isolate the issue to send you a test
> case.
Here's how to do it. Make a copy of your project. Create a .bat file that compiles it. Verify that it hangs. Now, keep deleting code until you have the minimum that produces the hang.
I've never seen one yet that couldn't be isolated down this way, including from people who swore it couldn't be done <g>. Don't worry about intelligently deciding what lines to delete. Delete something, even if it's just one line.
|
October 16, 2006 [Issue 424] Unexpected OPTLINK Termination at EIP=0044C37B | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=424 ------- Comment #4 from braddr@puremagic.com 2006-10-16 02:11 ------- Let's not clutter this report up with more than one issue. Please make sure a seprate bug is filed for the infinite loop issue. This report is strictly about th eoptlink fixup limit. Walter, can you please clarify where the limit exists and if it's authored by you or microsoft? I don't do any windows development so I'm unfamiliar with the pieces. Filer, would you please attach to this report an example .d file that fails with the error message? Rather than discussing why or how this programming practice might be ill advised, can we talk about where the problem is and how or if it can be fixed. Each barrier to the use of D, whatever the reason, is a barrier that should at least be addressed in a FAQ and not dismissed as a bad practice. Thanks, Brad -- |
November 08, 2006 [Issue 424] Unexpected OPTLINK Termination at EIP=0044C37B | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=424 ------- Comment #5 from someanon@yahoo.com 2006-11-07 21:09 ------- any chance this will be fixed soon? it's a bug anyways. -- |
December 27, 2006 [Issue 424] Unexpected OPTLINK Termination at EIP=0044C37B | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=424 ------- Comment #6 from someanon@yahoo.com 2006-12-27 12:48 ------- can this one be fixed before 1.0 (Jan 01 2007)? -- |
March 23, 2007 [Issue 424] Unexpected OPTLINK Termination at EIP=0044C37B | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=424 ------- Comment #7 from someanon@yahoo.com 2007-03-22 22:32 ------- No update? -- |
Copyright © 1999-2021 by the D Language Foundation