ghkweon / dwscript

Automatically exported from code.google.com/p/dwscript
0 stars 0 forks source link

Internal compiler error when using DWS with BPL packages in XE #419

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. Create a new package in Delphi XE
2. Add dwsLibDesignOnly to its REQUIRES list
3. Create a new unit within the package
4. Add dwsExprs to its USES list.
5. Attempt to compile

Expected: It should work.
Observed: "Never-build package needs to be rebuilt" error.  If dwsLibDesignOnly 
is rebuilt as a rebuild-as-needed package, the error becomes "[DCC Fatal Error] 
F2084 Internal Error: U10346" instead.

Original issue reported on code.google.com by masonwhe...@gmail.com on 14 Jun 2013 at 1:16

GoogleCodeExporter commented 8 years ago
Tweaked the dpk, any better?

I've sometimes seen this error because of a stray DCU

Original comment by zar...@gmail.com on 14 Jun 2013 at 8:44

GoogleCodeExporter commented 8 years ago
No, this doesn't fix it, and neither does deleting all stray DCUs.

I used dwsLibDesignOnly purely for illustrative purposes.  It seems that 
creating a package (any package) that contains dwsExprs, and then, in a 
different package, adding dwsExprs or any unit that uses it, directly or 
indirectly, to a unit's USES clause, triggers this error.

Original comment by masonwhe...@gmail.com on 14 Jun 2013 at 12:57

GoogleCodeExporter commented 8 years ago
Besides your test case, I have three large dpks here that do depend on 
dwsLibDesignOnly and dwsExprs, and they all compile...

This is with 15.0.3953.35171 (Delphi XE update 1) and Andy's IDE FixPack 5.1

Original comment by zar...@gmail.com on 14 Jun 2013 at 1:20

GoogleCodeExporter commented 8 years ago
I'm on the same build of XE, using Fixpack 5.3.  Do you have any examples of 
DPKs that successfully use dwsLibDesignOnly, or are they all internal?

Original comment by masonwhe...@gmail.com on 14 Jun 2013 at 2:51

GoogleCodeExporter commented 8 years ago
They're internal, but I also made one from scratch from your instructions.

Original comment by zar...@gmail.com on 14 Jun 2013 at 4:00

GoogleCodeExporter commented 8 years ago
Hallvard Vassbotn contributed many fixed for D2009 compatibility, did they by 
chance fix your internal error?

Original comment by zar...@gmail.com on 19 Jun 2013 at 3:32

GoogleCodeExporter commented 8 years ago
No.  I just tested the latest build on both my dev system and a different 
computer with a fresh install, and they both still have the same problem.  The 
issue can be seen by something as simple as building dwsRuntimeLib and then 
building dwsLib.

Original comment by masonwhe...@gmail.com on 1 Jul 2013 at 2:53

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
Hi I can second that. The error is:

[DCC Fatal Error] dwsRegister.pas(31): F2084 Internal Error: U10365

This is when compiling the dwsLib after compiling the dwsLibRuntime I'm using 
the IDE fix pack 5.3 

Original comment by fdue...@gmail.com on 11 Sep 2013 at 3:25

GoogleCodeExporter commented 8 years ago
Work Around:

I have tried some things and seems finally maybe the cause of the error, the 
compiler bug is not fixed but it can be workaround, it has to do with the 'code 
inlining control'

Now I remember I had that kind of issues when using inlined procedures and the 
procedure was too big in code, this bug is exclusive to Delphi XE and obviously 
was never fixed

Check the next options of the packages

1) dwsLibRuntime package
   - Delphi Compiler/Code generation/Code inlining Control = Auto or On or OFF
   - Description/Build control/Rebuild as needed

2) dwsLib package
   - Delphi Compiler/Code generation/Code inlining Control = OFF (this is the important thing)
   - Description/Build control/Rebuild as needed

Recompile the packages and seems it works, it installs correctly and can 
compile the DwsIdeDemo

BTW the runtime packages should be updated to included latest added units:

  dwsResultFunctions in '..\Source\dwsResultFunctions.pas',
  dwsSuggestions in '..\Source\SourceUtils\dwsSuggestions.pas',
  dwsDebugger in '..\Source\dwsDebugger.pas',
  dwsDebugFunctions in '..\Source\dwsDebugFunctions.pas';

Hope this can help you
Regards

Original comment by fdue...@gmail.com on 11 Sep 2013 at 3:57

GoogleCodeExporter commented 8 years ago
I have a similar issue. When compiling dwsLibRuntime in Delphi XE I get the 
following error:
[DCC Fatal Error] dwsSymbols.pas(5445): F2084 Internal Error: 
AV22223FF9-R00000000-0
Even if I comment out the code in the function I get this error!
I've tried the suggestions of September 10th, but it doesn't help.

Any ideas?
Kenneth

Original comment by kr...@saunalahti.fi on 21 Nov 2013 at 6:08

GoogleCodeExporter commented 8 years ago
Same issue in XE5; tried listed workaround and it doesn't work.

Original comment by dave.fob...@gmail.com on 31 Mar 2014 at 6:19

GoogleCodeExporter commented 8 years ago
If this happens in XE5 as well, someone could raise the case at EMBT (don't 
have XE5 here)

Original comment by zar...@gmail.com on 2 Apr 2014 at 11:01

GoogleCodeExporter commented 8 years ago
This problem sucked the life out of me today but I finally solved it - on a new 
new pc and a new install of Delphi XE I forgot to install the Delphi Update 1. 

After the update my old sources of DWS compiled ok. (The most recent dws 
sources from svn taken as of today throw various other errors such as "xxx unit 
already belong to xxx package".)

Original comment by nedko.iv...@gmail.com on 7 Oct 2014 at 5:09