www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Upgrading the minimum version of FreeBSD supported

reply Walter Bright <newshound2 digitalmars.com> writes:
The autotester is currently at FreeBSD 8.4. This is rather obsolete. The linker 
that is standard on 8.4 is causing problems:

   https://github.com/dlang/dmd/pull/6564

The oldest supported version of FreeBSD stands at 10.3:

   https://www.freebsd.org/security/unsupported.html

I know the linker with FreeBSD 11.0 does work correctly. I don't know which 
FreeBSD version it was fixed on.

So the question is, can we at least move to FreeBSD 10.3 as the minimum 
supported version? Is anyone very dependent on an older FreeBSD? Is there a
case 
for supporting FreeBSD versions that are officially unsupported?
Mar 31
next sibling parent Jonathan M Davis via Digitalmars-d <digitalmars-d puremagic.com> writes:
On Friday, March 31, 2017 15:51:33 Walter Bright via Digitalmars-d wrote:
 The autotester is currently at FreeBSD 8.4. This is rather obsolete. The
 linker that is standard on 8.4 is causing problems:

    https://github.com/dlang/dmd/pull/6564

 The oldest supported version of FreeBSD stands at 10.3:

    https://www.freebsd.org/security/unsupported.html

 I know the linker with FreeBSD 11.0 does work correctly. I don't know
 which FreeBSD version it was fixed on.

 So the question is, can we at least move to FreeBSD 10.3 as the minimum
 supported version? Is anyone very dependent on an older FreeBSD? Is there
 a case for supporting FreeBSD versions that are officially unsupported?
Some work was done a year or two ago to fix FreeBSD 9 and 10, and AFAIK, they both work, though I've never used FreeBSD 9. 10.3 did work the last time I tried it, as did 11.0 (both passed druntime and phobos' unit tests, and I _think_ that I ran dmd's tests and that they passed, but I'm not 100% sure, since I don't run those normally). FreeBSD CURRENT does _not_ currently work properly due to a problem with stack unwinding that results in bus errors when an exception is thrown. I think that there's a decent chance that it's a FreeBSD bug as opposed to ours, but I haven't gotten around to contacting the FreeBSD devs about it yet. However, that problem has not yet made it into an official release, and hopefully it never does. As for the minimum version to support, I'd be very much inclined to argue that we only officially support the versions that the FreeBSD folks currently support, or we're just asking for trouble. And honestly, I think that we should do the same on all platforms. If someone wants to run an unsupported version of an OS, they're just begging for trouble anyway, and they can always use an older version of the compiler that did support that OS. And actually, the last time I checked, the official FreeBSD port for dmd claimed that we don't officially support FreeBSD, even though we theoretically do (probably because support for it hasn't been as good - e.g. we test on an outdated version of the OS and took quite a while to fix druntime for newer versions of FreeBSD). Sadly, I think that the primary reason that druntime works correctly on FreeBSD 10 and 11 now is because I switched to using it as my primary OS and complained when it didn't work. It seems to have primarily gone under the radar otherwise. - Jonathan M Davis
Mar 31
prev sibling next sibling parent Brad Roberts via Digitalmars-d <digitalmars-d puremagic.com> writes:
On 3/31/2017 6:30 PM, Jonathan M Davis via Digitalmars-d wrote:
 On Friday, March 31, 2017 15:51:33 Walter Bright via Digitalmars-d wrote:
 The autotester is currently at FreeBSD 8.4. This is rather obsolete. The
 linker that is standard on 8.4 is causing problems:

     https://github.com/dlang/dmd/pull/6564

 The oldest supported version of FreeBSD stands at 10.3:

     https://www.freebsd.org/security/unsupported.html

 I know the linker with FreeBSD 11.0 does work correctly. I don't know
 which FreeBSD version it was fixed on.

 So the question is, can we at least move to FreeBSD 10.3 as the minimum
 supported version? Is anyone very dependent on an older FreeBSD? Is there
 a case for supporting FreeBSD versions that are officially unsupported?
Some work was done a year or two ago to fix FreeBSD 9 and 10, and AFAIK, they both work, though I've never used FreeBSD 9. 10.3 did work the last time I tried it, as did 11.0 (both passed druntime and phobos' unit tests, and I _think_ that I ran dmd's tests and that they passed, but I'm not 100% sure, since I don't run those normally). FreeBSD CURRENT does _not_ currently work properly due to a problem with stack unwinding that results in bus errors when an exception is thrown. I think that there's a decent chance that it's a FreeBSD bug as opposed to ours, but I haven't gotten around to contacting the FreeBSD devs about it yet. However, that problem has not yet made it into an official release, and hopefully it never does. As for the minimum version to support, I'd be very much inclined to argue that we only officially support the versions that the FreeBSD folks currently support, or we're just asking for trouble. And honestly, I think that we should do the same on all platforms. If someone wants to run an unsupported version of an OS, they're just begging for trouble anyway, and they can always use an older version of the compiler that did support that OS. And actually, the last time I checked, the official FreeBSD port for dmd claimed that we don't officially support FreeBSD, even though we theoretically do (probably because support for it hasn't been as good - e.g. we test on an outdated version of the OS and took quite a while to fix druntime for newer versions of FreeBSD). Sadly, I think that the primary reason that druntime works correctly on FreeBSD 10 and 11 now is because I switched to using it as my primary OS and complained when it didn't work. It seems to have primarily gone under the radar otherwise. - Jonathan M Davis
I grabbed the official 10.3-CURRENT vm image from the freebsd website and gave it a whirl. For the 64 bit test run, the only failure was std.datetime unit tests failure. Apparently LocalTime().stdName is null and the assert at line 28248 fails. There's at least one additional failure on 32 bits in allocator/building_blocks/region.d line 652. I ran out of time to dig for today, but the bottom line is that 10.3 isn't ready to be the base platform for dmd as is. Chances are it could be with only a little work though. I haven't tried 11 yet either. Later, Brad
Apr 02
prev sibling next sibling parent Jonathan M Davis via Digitalmars-d <digitalmars-d puremagic.com> writes:
On Sunday, April 02, 2017 20:40:15 Brad Roberts via Digitalmars-d wrote:
 I grabbed the official 10.3-CURRENT vm image from the freebsd website
 and gave it a whirl.  For the 64 bit test run, the only failure was
 std.datetime unit tests failure.  Apparently LocalTime().stdName is null
 and the assert at line 28248 fails.
Weird. I was running on PC-BSD 10.3 for a while (which should be the same as FreeBSD 10.3 proper for everything that matters), and I never saw that failure. I guess that I'll have to find some time to look into it. - Jonathan M Davis
Apr 02
prev sibling next sibling parent Brad Roberts via Digitalmars-d <digitalmars-d puremagic.com> writes:
On 4/2/2017 9:20 PM, Jonathan M Davis via Digitalmars-d wrote:
 On Sunday, April 02, 2017 20:40:15 Brad Roberts via Digitalmars-d wrote:
 I grabbed the official 10.3-CURRENT vm image from the freebsd website
 and gave it a whirl.  For the 64 bit test run, the only failure was
 std.datetime unit tests failure.  Apparently LocalTime().stdName is null
 and the assert at line 28248 fails.
Weird. I was running on PC-BSD 10.3 for a while (which should be the same as FreeBSD 10.3 proper for everything that matters), and I never saw that failure. I guess that I'll have to find some time to look into it. - Jonathan M Davis
Following up on this thread, I've setup another auto-tester project with just two new freebsd machines, 10.3 and 11.0. The purpose is to allow anyone who has the time and desire to help fix the issues to have a place to view the results. So please, submit pull requests so we can get the issues fixed and retire the old 8.x machines. The github project they're building is github.com/braddr/dmd|druntime|phobos/tree/freebsd-update.
Apr 14
prev sibling parent Jonathan M Davis via Digitalmars-d <digitalmars-d puremagic.com> writes:
On Sunday, April 2, 2017 8:40:15 PM CEST Brad Roberts via Digitalmars-d 
wrote:
 I grabbed the official 10.3-CURRENT vm image from the freebsd website
 and gave it a whirl.  For the 64 bit test run, the only failure was
 std.datetime unit tests failure.  Apparently LocalTime().stdName is null
 and the assert at line 28248 fails. There's at least one additional
 failure on 32 bits in allocator/building_blocks/region.d line 652.  I
 ran out of time to dig for today, but the bottom line is that 10.3 isn't
 ready to be the base platform for dmd as is.  Chances are it could be
 with only a little work though.
The std.datetime failure is due to known FreeBSD bug, but it's affected by the local time, and apparently, it works in America/Los_Angeles but not in UTC (which is why I wasn't seeing it). I'll commit a workaround shortly, though I still need to figure out how to push the fix in FreeBSD through so that FreeBSD doesn't have the bug anymore... - Jonathan M Davis
May 07