Bug 13735 – Tests for dmd#3998 start fails after 2014-11-09 on FreeBSD without obvious reasons.

Status
RESOLVED
Resolution
INVALID
Severity
regression
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
x86_64
OS
FreeBSD
Creation time
2014-11-15T02:11:00Z
Last change time
2014-11-15T17:00:15Z
Assigned to
nobody
Creator
wazar.leollone

Comments

Comment #0 by wazar.leollone — 2014-11-15T02:11:32Z
https://github.com/D-Programming-Language/dmd/pull/3998 starts to fail on FreeBSD 64 (arm-2 server). Looks like it passes on 26b28ec564f7a8fb6f50487f6fe42a323a5e1392 phobos and 10451418ec52adb4bb6235fa7e56ae81e94d817a dmd (before merging this patch) but stop passing on phobos 70d0a6dbae50684401ba8d3c4df27e0103717bf7 and dmd dc118391e51ddb69093780c157b1ca41e26add90. However it looks like it relevants with this PR (the funny thing) **************** std/format.d(2304): Error: popFront (ref string str) is not callable using argument types (C3) std/format.d(2708): Error: template instance std.format.formatRange!(Appender!string, C3, char) error instantiating std/format.d(3300): instantiated from here: formatValue!(Appender!string, C3, char) std/format.d(1897): instantiated from here: formatTest!(C3) ***************** In other words, the following code fails, ... ******************* class C3 { string val; alias val this; this(string s){ val = s; } override string toString() const { return "C"; } } formatTest( new C3("c3"), "C" ); ******************* ... because ref C3 can not be passed to function as ref string, even if C3.val is l-value. However this test is passed on the others platforms (as needed). This may be (C++ compiler related issue, when my code contains a error, which manifested only with this environment). Is somebody knows, was arm-2 g++ updated near 2014-11-09? And is it possible to tests this PR manually on another FreeBSD64?
Comment #1 by braddr — 2014-11-15T02:33:08Z
You mean "farm-2" not "arm-2". A tiny typo, but lots of connotations implying arm. :) Nothing changed on the box, not hardware or installed software. braddr@farm-2:/home/braddr$ which gcc /usr/bin/gcc braddr@farm-2:/home/braddr$ ls -l /usr/bin/gcc -r-xr-xr-x 2 root wheel 419568 Jun 2 2013 /usr/bin/gcc braddr@farm-2:/home/braddr$ date Fri Nov 14 18:05:05 PST 2014 braddr@farm-2:/home/braddr$ gcc --version gcc (GCC) 4.2.1 20070831 patched [FreeBSD] Copyright (C) 2007 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Regardless, there's roughly no way that changes to the compiler would impact dmd's frontend behavior that specifically. The farm-1 machine is identical to the farm-2 machine, except that the farm-1 machine is doing the freebsd/32 bit build in a chroot environment. Both use the same version of gcc and every other tool. And nothing about that error cries 32 vs 64 bit issue either. Of course, nothing screams freebsd either, and it's the only platform failing.
Comment #2 by wazar.leollone — 2014-11-15T02:50:43Z
>Regardless, there's roughly no way that changes to the compiler would impact dmd's frontend behavior that specifically. I am faced with a situation when dmc evaluated part of for-cycle exit condition (array->length) one time before cycle evaluating, but g++ computes it after each iteration. And when cycle-body pushes elements to array, dmc ignores it. >The farm-1 machine is identical to the farm-2 machine, except that the farm-1 machine is doing the freebsd/32 bit build in a chroot environment. Both use the same version of gcc and every other tool. And nothing about that error cries 32 vs 64 bit issue either. Of course, nothing screams freebsd either, and it's the only platform failing. I've verified all commits before last success and first fail. Nothing relevant with std.format or makefiles Can you try to run different combination of tests? At first phobos head + dmd head: dmd test If it ok: 26b28ec564f7a8fb6f50487f6fe42a323a5e1392 phobos + head dmd : phobos test head phobos + 10451418ec52adb4bb6235fa7e56ae81e94d817a dmd : phobos test And if both will fail: control 26b28ec564f7a8fb6f50487f6fe42a323a5e1392 phobos and 10451418ec52adb4bb6235fa7e56ae81e94d817a dmd (last success).
Comment #3 by wazar.leollone — 2014-11-15T17:00:15Z
Sorry, it was a my error. I've added explanations to PR.