D.gnu - Different behaviour between gcd and dmd
- Juanjo Alvarez (20/20) Sep 02 2014 test:
- Juanjo Alvarez (32/52) Sep 02 2014 Sorry, forgot to post versions (@excuse: I just returned from a
- ketmar via D.gnu (5/5) Sep 02 2014 On Tue, 02 Sep 2014 20:49:24 +0000
test:
void main()
{
import std.array;
const lines = ["abc", "def"];
auto res = std.array.join(lines, "\n");
}
DMD: compiles and work
GCD: compile error:
test.d:6: error: template std.array.join cannot deduce function
from argument types !()(const(immutable(char)[][]), string),
candidates are:
/home/juanjux/descargas/x86_64-gdcproject-linux-gnu/include/d/4.9
0/std/array.d:1526:
note: std.array.join(RoR, R)(RoR ror, R sep) if (isInputRange!RoR
&& isInputRange!(ElementType!RoR) && isInputRange!R &&
is(Unqual!(ElementType!(ElementType!RoR)) ==
Unqual!(ElementType!R)))
/home/juanjux/descargas/x86_64-gdcproject-linux-gnu/include/d/4.9
0/std/array.d:1573:
note: std.array.join(RoR)(RoR ror) if (isInputRange!RoR &&
isInputRange!(ElementType!RoR))
Sep 02 2014
Sorry, forgot to post versions ( excuse: I just returned from a
dinner and I'm a little drunk):
DMD: 2.0.65 and 2.0.66
GCD: (package downloaded from the site, Linux 64bits native):
Using built-in specs.
COLLECT_GCC=/home/juanjux/descargas/x86_64-gdcproject-linux-gnu/bin/gdc
COLLECT_LTO_WRAPPER=/home/juanjux/descargas/x86_64-gdcproject-linux-gnu/bin/../libexec/gcc/x86_64-unknown-linux-gnu/4.9.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with:
/home/build/tmp/native_build/.build/src/gcc-4.9.0/configure
--build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu
--target=x86_64-unknown-linux-gnu
--prefix=/home/build/tmp/install/x86_64-gdcproject-linux-gnu
--enable-languages=c,c++,d --with-pkgversion='crosstool-NG
hg+unknown-20140610.075849 - 20140615-2.065-a8ad6a6678'
--with-bugurl=http://gdcproject.org/bugzilla/
--disable-sjlj-exceptions --enable-__cxa_atexit
--disable-libmudflap --disable-libgomp --disable-libssp
--disable-libquadmath --disable-libquadmath-support
--with-gmp=/home/build/tmp/native_build/.build/x86_64-gdcproject-
inux-gnu/buildtools
--with-mpfr=/home/build/tmp/native_build/.build/x86_64-gdcproject-
inux-gnu/buildtools
--with-mpc=/home/build/tmp/native_build/.build/x86_64-gdcproject-
inux-gnu/buildtools
--with-isl=/home/build/tmp/native_build/.build/x86_64-gdcproject-
inux-gnu/buildtools
--with-cloog=/home/build/tmp/native_build/.build/x86_64-gdcproject-
inux-gnu/buildtools
--with-libelf=/home/build/tmp/native_build/.build/x86_64-gdcproject-
inux-gnu/buildtools
--enable-threads=posix --enable-target-optspace --disable-nls
--disable-multilib --enable-c99 --enable-long-long
Thread model: posix
gcc version 4.9.0 (crosstool-NG hg+unknown-20140610.075849 -
20140615-2.065-a8ad6a6678)
On Tuesday, 2 September 2014 at 20:49:26 UTC, Juanjo Alvarez
wrote:
test:
void main()
{
import std.array;
const lines = ["abc", "def"];
auto res = std.array.join(lines, "\n");
}
DMD: compiles and work
GCD: compile error:
test.d:6: error: template std.array.join cannot deduce function
from argument types !()(const(immutable(char)[][]), string),
candidates are:
/home/juanjux/descargas/x86_64-gdcproject-linux-gnu/include/d/4.9
0/std/array.d:1526:
note: std.array.join(RoR, R)(RoR ror, R sep) if
(isInputRange!RoR && isInputRange!(ElementType!RoR) &&
isInputRange!R && is(Unqual!(ElementType!(ElementType!RoR)) ==
Unqual!(ElementType!R)))
/home/juanjux/descargas/x86_64-gdcproject-linux-gnu/include/d/4.9
0/std/array.d:1573:
note: std.array.join(RoR)(RoR ror) if (isInputRange!RoR &&
isInputRange!(ElementType!RoR))
Sep 02 2014
On Tue, 02 Sep 2014 20:49:24 +0000 "Juanjo Alvarez via D.gnu" <d.gnu puremagic.com> wrote: it's a bug in std.array that was fixed after 2.065 lands in GDC. it's commit ce7d4ed26a81ad44218f8948e5f83f36bc461029 you can either apply this change manually or wait until 2.066 lands.
Sep 02 2014









"Juanjo Alvarez" <juanjux gmail.com> 