[phobos] inconsistent failing test in std.parallelism - minor changes to dmd/src

Jacob Carlborg doob at me.com
Tue Nov 19 12:07:18 PST 2013


On 19 nov 2013, at 15:00, Ali Akhtarzada <ali.akhtarzada at gmail.com> wrote:

> Hi people,
> 
> So I just started with this d stuff. Just cloned master source. Built dmd, phobos and druntime and ran tests. Got a fail in std.parallelism, then reran again and it passed. Did this a couple more times, failed again at some point, but then passed again. 
> 
> Is this a known issue?
> 
> Also, I did make some changes in the dmd/src already. Was getting a crap load of warnings about logical && being nested inside logical || without parenthesis. So I went through the source and added parenthesis to silence that warning - mundane mechanical stuff :(
> 
> Build details:
> - Osx Mavericks - x86_64
> - dmd/src/: make MODEL=64 DEBUG=1
> - druntime/: make MODEL=64 DEBUG=1 DMD=../dmd/src/dmd
> - phobos/: make MODEL=64 DEBUG=1 DMD=../dmd/src/dmd
> - dmd -man outputs: DMD v2.065-devel-ae7adb9 DEBUG
> 
> When I build dmd it seems to build with g++ on osx. Strange because I thought gcc was removed as of osx 10.8. So g++ I think is just a wrapper that calls clang internally. When I run g++ -v on my machine I get:
> 
> Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
> Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
> Target: x86_64-apple-darwin13.0.0
> Thread model: posix
>  
> I thought it my be a script or a symlink but it doens't seem to be. Maybe it's just a binary that translates g++ cmd args to clang++ or something... dunno, but anyway...

Yes, GCC has been removed in Xcode 5. They still have a binary called g++, but as you can see it's actually Clang. We do have had some tests failing when compiling DMD with Clang. I don't know if Clang the cause in this case. Since GCC has been removed now we really need to make DMD work with Clang. Any help is appreciated.

> The tests inside dmd/tests all pass fine, and the druntime tests pass consistently as well after the changes I made (I did not make any functional changes, though of course I could've retardedly messed up parenthesis somewhere. 
> 
> The failure:
> 
> Testing std.outbuffer: OK (took 0ms)
> totalCPUs = 4
> Testing std.parallelism: FAIL
> core.thread.ThreadException at src/core/thread.d(938): Unable to set thread priority
> ----------------
> 5   test_runner                         0x00000001058239d3 std.parallelism.TaskPool std.parallelism.TaskPool.__ctor(std.parallelism.AbstractTask*, int) + 147
> 6   test_runner                         0x00000001058295c3 @trusted void std.parallelism.Task!(_D3std11parallelism17__unittestL3913_3FZv6refFunFKkZv, uint).Task.executeInNewThread(int) + 115
> 7   test_runner                         0x0000000105824dab void std.parallelism.__unittestL3913_3() + 675
> 8   test_runner                         0x0000000105822bc7 void std.parallelism.__modtest() + 19
> 9   test_runner                         0x000000010503e4da bool test_runner.tester() + 430
> 10  test_runner                         0x0000000105eaaeb9 runModuleUnitTests + 193
> 11  test_runner                         0x0000000105eb8157 void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).runAll() + 23
> 12  test_runner                         0x0000000105eb810d void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).tryExec(scope void delegate()) + 45
> 13  test_runner                         0x0000000105eb8083 _d_run_main + 443
> 14  test_runner                         0x000000010503e1fa main + 34
> 15  libdyld.dylib                       0x00007fff941d05fd start + 1
> 16  ???                                 0x0000000000000002 0x0 + 2make[1]: *** [generated/osx/debug/64/unittest/std/parallelism] Error 1
> 
> I'm quite new to everything here, don't even really know d much, but looks interesting and I would like to possibly help, time permitting. I'm also not sure if this is the right place to go about asking these things? Should I have posted to digitalmars.D instead? Do people just file a bug immediately and let it go from there or is this the right place to get the ball rolling or?


I guess it's ok to post here. Note that these mailing list don't have as much traffic as the newsgroups. Most people start by posting to digitalmars.D.learn or digitalmars.D.

-- 
/Jacob Carlborg

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/phobos/attachments/20131119/ec45192f/attachment.html>


More information about the phobos mailing list