February 25, 2015
On Wednesday, 25 February 2015 at 20:35:12 UTC, Kai Nacke wrote:
> On Wednesday, 25 February 2015 at 00:02:33 UTC, Kevin Brogan wrote:
>> ...
>>
>> I've been able to determine that many of the segmentation faults is due to the append operator.
>>
>
> Hi Kevin,
>
> are you already using the new vararg code? (Committed yesterday....)
> And which LLVM version do you use?
>
> I could not reproduce the crash on Win64 right now.
>
> Regards,
> Kai

It's working for me now that I've pulled yesterday's vararg updates.

Yay!  Also, what timing!
February 26, 2015
> Yay!  Also, what timing!

Pure coincidence, but that append operator issue on Win64 was the initial reason for that PR. ;)
What LLVM commit are you using? I'm using yesterday's release_36 head and exception handling on Win64 is sadly broken again, causing a myriad of failing tests.

I can confirm the /LARGEADDRESSAWARE:NO issue.

Wrt. running the tests: I often find myself taking a shortcut and running only the debug tests to reduce the required time considerably; phobos2-ldc-unittest takes a very long time, especially std.algorithm. You can disable the release tests by editing runtime\CTestTestfile.cmake in your build directory. Delete the first 6 non-comment lines and then all tests from core.atomic (new line 7, first druntime release test) to (but obviously excluding) core.atomic-debug (more or less at the center of the file).
dmd-testsuite doesn't compile as it requires the make build system, so you don't need to edit tests\d2\CTestTestfile.cmake in a similar way.
Beware that these ctest files get rebuilt as soon as your local LDC git head changes!
February 27, 2015
On Thursday, 26 February 2015 at 20:03:44 UTC, kinke wrote:
>> Yay!  Also, what timing!
>
> Pure coincidence, but that append operator issue on Win64 was the initial reason for that PR. ;)
> What LLVM commit are you using? I'm using yesterday's release_36 head and exception handling on Win64 is sadly broken again, causing a myriad of failing tests.

Exception handling broke on release_36 (or was always broken, not sure), so I went back to master. Currently exceptions are working for me on
LLVM d89ac8f158976eaa9f9bcfba88f8a679771704f8
LDC  770b436e5c304ce635c186a09b04839f39fe4e71

I'm only failing 41 test cases and I've just about to post about how to fix an assembly optimization bug that will bring that number down to 40 soon i hope.

With LLVM I've also got a custom change to Support/raw_ostream.cpp and Support/ErrorHandling.cpp of

# include <unistd.h>
# if !defined(HAVE_STDINT_H)
#  include <unistd.h>
# endif

To remove a compilation error about redefinitions.

> I can confirm the /LARGEADDRESSAWARE:NO issue.
>
> Wrt. running the tests: I often find myself taking a shortcut and running only the debug tests to reduce the required time considerably; phobos2-ldc-unittest takes a very long time, especially std.algorithm. You can disable the release tests by editing runtime\CTestTestfile.cmake in your build directory. Delete the first 6 non-comment lines and then all tests from core.atomic (new line 7, first druntime release test) to (but obviously excluding) core.atomic-debug (more or less at the center of the file).
> dmd-testsuite doesn't compile as it requires the make build system, so you don't need to edit tests\d2\CTestTestfile.cmake in a similar way.
> Beware that these ctest files get rebuilt as soon as your local LDC git head changes!

Bloody thing does take forever. Little over an hour on my machine. I'm working on test 19 at the moment so I use ctest's options to run just what is needed.

If I want to modify command line options for test 1 or 2, I copy and paste the output from ctest --force-new-ctest-process --output-on-failure -I 1,2,1,19 -V (added verbose flag) into a batch file.

Test two is too long for the command prompt (maximum input size... wtf).
I modify the runtime command by adding "-L/LIBPATH:C:/ldcenv/ninja-ldc2-x64/runtime/src/" and then removing the base path i just added from all of the object files.

ctest --force-new-ctest-process --output-on-failure -I 1,2,1,19
February 27, 2015
> LLVM d89ac8f158976eaa9f9bcfba88f8a679771704f8

Thank you very much, this one works for me too with current LDC head. Compiling the tests right now...

> I'm only failing 41 test cases and I've just about to post about how to fix an assembly optimization bug that will bring that number down to 40 soon i hope.

Perfect, looking forward to it. :)
Note that there's https://github.com/ldc-developers/ldc/issues/758 to keep track of these failing tests on Win64. E.g., we've also had 41 failures on October 25th 2014.
February 27, 2015
Thanks for your hints. I am now able to run (part of) the tests, and have enough leads to make them work and start working on getting some tests to pass :)

A very happy,
  Johan


March 01, 2015
On Wednesday, 25 February 2015 at 20:47:14 UTC, Kai Nacke wrote:
> Hi Kevin!
>
> On Wednesday, 25 February 2015 at 19:09:44 UTC, Kevin Brogan wrote:
>>
>> Finally, I also had to modify the LLVM config file for both LDC and Ninja to pass /LARGEADDRESSAWARE:NO to the msvc linker or none of the debug builds would compile.
>>
>> c:\ldcenv\ninja-ldc2-x64\bin\ldc2.conf and
>> %LDCROOT%\etc\ldc2.conf
>>
>> add    ,"-L/LARGEADDRESSAWARE:NO"    to switches
>
> This is strange. /LARGEADDRESSAWARE:NO was only required for LLVM < 3.4. The Win64 version requires LLVM 3.6 otherwise there is no exception support.

I have the same /LARGEADDRESSAWARE:NO issue using LLVM 3.7.0svn-r230699.
1 2
Next ›   Last »