appveyor: build Win32 dmd executable with LDC#8158
appveyor: build Win32 dmd executable with LDC#8158WalterBright merged 3 commits intodlang:masterfrom
Conversation
|
Thanks for your pull request, @rainers! Bugzilla referencesYour PR doesn't reference any Bugzilla issue. If your PR contains non-trivial changes, please reference a Bugzilla issue or create a manual changelog. Testing this PR locallyIf you don't have a local development environment setup, you can use Digger to test this PR: dub fetch digger
dub run digger -- build "master + dmd#8158" |
bead2e4 to
413e3c2
Compare
|
|
e7c76cd to
90156b5
Compare
90156b5 to
aeb1145
Compare
|
There is one failing test: It is caused by a wrong value being passed through Lexer.error to .verror. Seems to be an issue with va_args. @kinke I suspect you have seen this with LDC before? |
|
Hmm nope. That test passes for LDC (CI-compiled using 64-bit LDC v1.6) on both Win32 and Win64 and I don't recall seeing it fail. |
|
@kinke Just wait until you update to latest dmd sources (before the latest commit in this PR): the problem is that passing variadic arguments through an interface function doesn't work with LDC because the interface thunk calls the class member function instead of just jumping to it avoiding a copy of the arguments on the stack. |
|
Oh I just fixed that for LDC: ldc-developers/ldc#2630 [We'll probably have a 1.9-beta1 next week, and a final in ~3.] |
|
Wow, what a coincidence ;-) If not using multiple interfaces an abstract base class is slightly more efficient because it doesn't need any thunks to begin with. So maybe the PR is acceptable with the workaround. |
afa0f09 to
ce68811
Compare
I've done that locally on top of the changes in this PR, but it involves quite some changes so I think it should be better made in a separate PR. |
Ehhhkselllehnt! |
Unfortunately #7339 wasn't good enough for Win32.