digitalmars.D.bugs - [Issue 7919] New: Sample code works on GDC but fails with DMD
- d-bugmail puremagic.com (80/80) Apr 15 2012 http://d.puremagic.com/issues/show_bug.cgi?id=7919
- d-bugmail puremagic.com (11/11) Apr 15 2012 http://d.puremagic.com/issues/show_bug.cgi?id=7919
- d-bugmail puremagic.com (19/21) Apr 15 2012 http://d.puremagic.com/issues/show_bug.cgi?id=7919
- d-bugmail puremagic.com (6/6) Apr 16 2012 http://d.puremagic.com/issues/show_bug.cgi?id=7919
- d-bugmail puremagic.com (10/10) Apr 17 2012 http://d.puremagic.com/issues/show_bug.cgi?id=7919
- d-bugmail puremagic.com (9/9) Apr 21 2012 http://d.puremagic.com/issues/show_bug.cgi?id=7919
- d-bugmail puremagic.com (11/11) May 12 2012 http://d.puremagic.com/issues/show_bug.cgi?id=7919
- d-bugmail puremagic.com (10/10) May 12 2012 http://d.puremagic.com/issues/show_bug.cgi?id=7919
http://d.puremagic.com/issues/show_bug.cgi?id=7919 Summary: Sample code works on GDC but fails with DMD Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nobody puremagic.com ReportedBy: russel winder.org.uk --- Comment #0 from Russel Winder <russel winder.org.uk> 2012-04-15 11:45:57 PDT --- The code: import std.algorithm ; import std.range ; import std.stdio ; import core.thread ; int main ( immutable string[] args ) { auto threads = array ( map ! ( ( int a ) { void delegate ( ) f ( ) { return delegate ( ) { writeln ( a ) ; } ; } return new Thread ( f ) ; } ) ( iota ( 10 ) ) ) ; foreach ( t ; threads ) { t.start ( ) ; } foreach ( t ; threads ) { t.join ( ) ; } return 0 ; } compiles and runs as expected when using GDC on Linux: Using built-in specs. COLLECT_GCC=gdc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.6/lto-wrapper Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Debian 4.6.3-1' --with-bugurl=file:///usr/share/doc/gdc-4.6/README.Bugs --enable-languages=c,c++,d --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin --disable-multilib --with-arch-32=i586 --with-tune=generic --disable-libquadmath --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 4.6.3 (Debian 4.6.3-1) However when using DMD 2.059, the compilation fails with the error: /home/users/russel/lib.Linux.x86_64/DMD2/bin64/../../src/phobos/std/traits.d(1482): Error: void does not have a default initializer /home/users/russel/lib.Linux.x86_64/DMD2/bin64/../../src/phobos/std/traits.d(1493): Error: template instance std.traits.hasIndirections!(Thread).Impl!(void[168LU]) error instantiating /home/users/russel/lib.Linux.x86_64/DMD2/bin64/../../src/phobos/std/array.d(143): instantiated from here: hasIndirections!(Thread) /home/users/russel/lib.Linux.x86_64/DMD2/bin64/../../src/phobos/std/array.d(143): Error: template instance std.traits.hasIndirections!(Thread) error instantiating /home/users/russel/lib.Linux.x86_64/DMD2/bin64/../../src/phobos/std/array.d(243): Error: template instance std.array.blockAttribute!(Thread) error instantiating /home/users/russel/lib.Linux.x86_64/DMD2/bin64/../../src/phobos/std/array.d(194): instantiated from here: arrayAllocImpl!(false,Thread[],uint) /home/users/russel/lib.Linux.x86_64/DMD2/bin64/../../src/phobos/std/array.d(42): instantiated from here: uninitializedArray!(Thread[],uint) initializingWithAMap.d(9): instantiated from here: array!(Result) /home/users/russel/lib.Linux.x86_64/DMD2/bin64/../../src/phobos/std/array.d(194): Error: template instance std.array.arrayAllocImpl!(false,Thread[],uint) error instantiating /home/users/russel/lib.Linux.x86_64/DMD2/bin64/../../src/phobos/std/array.d(42): instantiated from here: uninitializedArray!(Thread[],uint) initializingWithAMap.d(9): instantiated from here: array!(Result) /home/users/russel/lib.Linux.x86_64/DMD2/bin64/../../src/phobos/std/array.d(42): Error: template instance std.array.uninitializedArray!(Thread[],uint) error instantiating initializingWithAMap.d(9): instantiated from here: array!(Result) initializingWithAMap.d(9): Error: template instance std.array.array!(Result) error instantiating -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Apr 15 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7919 Iain Buclaw <ibuclaw ubuntu.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ibuclaw ubuntu.com --- Comment #1 from Iain Buclaw <ibuclaw ubuntu.com> 2012-04-15 11:50:49 PDT --- I am just going to point out that gdc is on 2.057 release. And my best assumption would be this would be a library bug, not a compiler. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Apr 15 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7919 Kenji Hara <k.hara.pg gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Component|DMD |Phobos --- Comment #2 from Kenji Hara <k.hara.pg gmail.com> 2012-04-15 17:53:07 PDT --- There are related two issues. 1. The implementation of core.thread.Thread class was hidden by adding hand-made di file in 2.059. It hides actual class members with 'void[N] data'. 2. std.traits.hasIndirections doesn't define its behavior against void[N] type. I think hasIndirections template should return true for void static array types, because void data *may* have some indirections - it's conservative way. But I'm not sure. (In reply to comment #1)I am just going to point out that gdc is on 2.057 release. And my best assumption would be this would be a library bug, not a compiler.Yes, this is druntime or Phobos issue, not compiler's. I'll change 'Component' from dmd to Phobos. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Apr 15 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7919 --- Comment #3 from Russel Winder <russel winder.org.uk> 2012-04-16 03:18:09 PDT --- Just to add a bit more data: the code works as anticipated with DMD 2.058. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Apr 16 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7919 Kenji Hara <k.hara.pg gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |pull, rejects-valid --- Comment #4 from Kenji Hara <k.hara.pg gmail.com> 2012-04-17 02:03:03 PDT --- https://github.com/D-Programming-Language/phobos/pull/540 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Apr 17 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7919 SomeDude <lovelydear mailmetrash.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |lovelydear mailmetrash.com Severity|normal |regression -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Apr 21 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7919 --- Comment #5 from github-bugzilla puremagic.com 2012-05-12 10:34:14 PDT --- Commits pushed to master at https://github.com/D-Programming-Language/phobos https://github.com/D-Programming-Language/phobos/commit/e3cfaeb005e42d5397f548a9cd6beb28264c85e9 fix Issue 7919 - Sample code works on GDC but fails with DMD https://github.com/D-Programming-Language/phobos/commit/a47332ca0df2cd4ea714e7ab31e5376fd72adb93 Merge pull request #540 from 9rnsr/fix7919 Issue 7919 - Sample code works on GDC but fails with DMD -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
May 12 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7919 Brad Roberts <braddr puremagic.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |braddr puremagic.com Resolution| |FIXED -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
May 12 2012