www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.dwt - DWT fails to build with DMD 2.074.0

reply JamesD <none mail.com> writes:
Is there a known issue with DMD 2.074.0 importing *.di files?

(If no answer here, I will re-post in the DMD thread)

I've searched, but could not find this issue in the forums.

The following errors occur on both linux and windows when 
building a simple hello world DWT gui app. The same code builds 
on DMD 2.073.2 with no errors on both 32-bit and 64-bit linux and 
windows.

Build error with DMD 2.074.0 importing *.di files:
     https://pastebin.com/UgWNqZzh

It is beyond my technical ability to decipher what the core issue 
is.

The same code builds with no errors when importing the 
corresponding *.d files instead of the *.di files.

There are no errors building the DWT static libraries with DMD 
2.074.0.
The errors occur when building a simple hello.d DWT gui app.

The obvious work-around is to import the *.d files instead of the 
*.di files.
Building *.d files is a little slower, but almost negligible on a 
fast PC.

However, there are minor issues with a few of the *.d files.
There are double semi-colons (;;) at the end of a few lines.
Here are the warnings building *.d files with dmd on linux:
     https://pastebin.com/Zw7LjTh3
Perhaps I'll do a pull request to fix these minor errors?
Apr 29 2017
parent reply Petar Kirov [ZombineDev] <petar.p.kirov gmail.com> writes:
On Saturday, 29 April 2017 at 12:42:09 UTC, JamesD wrote:
 Is there a known issue with DMD 2.074.0 importing *.di files?

 (If no answer here, I will re-post in the DMD thread)

 I've searched, but could not find this issue in the forums.

 The following errors occur on both linux and windows when 
 building a simple hello world DWT gui app. The same code builds 
 on DMD 2.073.2 with no errors on both 32-bit and 64-bit linux 
 and windows.

 Build error with DMD 2.074.0 importing *.di files:
     https://pastebin.com/UgWNqZzh

 It is beyond my technical ability to decipher what the core 
 issue is.

 The same code builds with no errors when importing the 
 corresponding *.d files instead of the *.di files.

 There are no errors building the DWT static libraries with DMD 
 2.074.0.
 The errors occur when building a simple hello.d DWT gui app.

 The obvious work-around is to import the *.d files instead of 
 the *.di files.
 Building *.d files is a little slower, but almost negligible on 
 a fast PC.

 However, there are minor issues with a few of the *.d files.
 There are double semi-colons (;;) at the end of a few lines.
 Here are the warnings building *.d files with dmd on linux:
     https://pastebin.com/Zw7LjTh3
 Perhaps I'll do a pull request to fix these minor errors?
Are the *.di generated automatically, or are they written by hand? The compiler is known [0] to have problems with header (*.di) generation, and IIRC there were some fixes recently [1] that may have caused this problem. On the other hand there are no known issues with importing *.di, since it works the same as as improting plain *.d files (*.di is only a convention - you can functions without bodies or vice versa in both). Looking at https://pastebin.com/UgWNqZzh it seems that the problem shouldn't be hard to solve, since it's only a syntax error. I suggest examining and manually editing ../dwt/imp/org/eclipse/swt/accessibility/Accessible.di to narrow down the problem. I have no knowledge of DWT, so sorry if this is not very helpful. [0]: https://issues.dlang.org/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=VERIFIED&component=dmd&list_id=214662&product=D&query_format=advanced&resolution=---&short_desc=header%20generation&short_desc_type=anywordssubstr [1]: http://dlang.org/changelog/2.074.0.html issue 15676
Apr 29 2017
parent JamesD <none mail.com> writes:
On Saturday, 29 April 2017 at 13:54:04 UTC, Petar Kirov 
[ZombineDev] wrote:
 Are the *.di generated automatically, or are they written by 
 hand? The compiler is known [0] to have problems with header 
 (*.di) generation, and IIRC there were some fixes recently [1] 
 that may have caused this problem. On the other hand there are 
 no known issues with importing *.di, since it works the same as 
 as improting plain *.d files (*.di is only a convention - you 
 can functions without bodies or vice versa in both).

 Looking at https://pastebin.com/UgWNqZzh it seems that the 
 problem shouldn't be hard to solve, since it's only a syntax 
 error. I suggest examining and manually editing 
 ../dwt/imp/org/eclipse/swt/accessibility/Accessible.di to 
 narrow down the problem.

 I have no knowledge of DWT, so sorry if this is not very 
 helpful.

 [0]: 
 https://issues.dlang.org/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=VERIFIED&component=dmd&list_id=214662&product=D&query_format=advanced&resolution=---&short_desc=header%20generation&short_desc_type=anywordssubstr
 [1]: http://dlang.org/changelog/2.074.0.html issue 15676
Thank you for your feedback and for the links to the bug reports! The *.di files are generated by DMD when building the *.di files, not by hand. I makes sense that it is an issue with DMD creating the *.di files, versus importing. Understood about editing the *.di files manually, but they are intended to be rebuilt depending on platform and arch. However, manually editing the *.d file is an option. I'm not sure if I have the technical knowledge to do this, but I'll consider after reviewing any other feedback.
Apr 29 2017