On 1/14/26 1:57 PM, Richard (Rikki) Andrew Cattermole wrote:
> On 14/01/2026 3:56 PM, confuzzled wrote:
>>
>> I think there is something corrupted in the build system. I just built
>> the v2.112.0 tag on my intel MacBook Pro running 15.5 and it worked
>> fine. Then I upgraded to 26.2 and it still works fine.
>
> Building, and passing testsuite are two very different things.
And still that implied rigor that is inherently built into the official building process did NOTHING to prevent it from delivering a product that is 100% broken on macOS. Prey tell, how many tests in said suite did it pass?

But maybe I am misunderstanding you. Is something like this (see attached log) what you are referring to or is there some other specific testsuite that it must pass to be considered a successful build?

Look, all I'm saying is that if I can build the compiler and use it to compile itself on macOS, then there is something wrong with the way it is being built in the release process. I am not in any way suggesting that v2.112.0 does not introduce regressions or other bugs.

Note: I couldn't post complete log for DMD/DRuntime/Phobos because the exceed newsgroup size limitations.
========== Running Phobos Unittests ==========
gmake: Entering directory '/Users/osxbuilder/Projects/git_repos/D/phobos'
gmake unittest OS=osx MODEL=64 
DMD=/Users/osxbuilder/Projects/git_repos/D/dmd/generated/osx/release/64/dmd 
BUILD=debug
gmake unittest OS=osx MODEL=64 
DMD=/Users/osxbuilder/Projects/git_repos/D/dmd/generated/osx/release/64/dmd 
BUILD=release
gmake[1]: Entering directory '/Users/osxbuilder/Projects/git_repos/D/phobos'
gmake[1]: Entering directory '/Users/osxbuilder/Projects/git_repos/D/phobos'
gmake -C ../dmd/druntime MODEL=64 
DMD=/Users/osxbuilder/Projects/git_repos/D/dmd/generated/osx/release/64/dmd 
OS=osx BUILD=release
gmake -C ../dmd/druntime MODEL=64 
DMD=/Users/osxbuilder/Projects/git_repos/D/dmd/generated/osx/release/64/dmd 
OS=osx BUILD=debug
gmake[2]: Entering directory 
'/Users/osxbuilder/Projects/git_repos/D/dmd/druntime'
gmake[2]: Entering directory 
'/Users/osxbuilder/Projects/git_repos/D/dmd/druntime'
gmake[2]: Nothing to be done for 'target'.
gmake[2]: Nothing to be done for 'target'.
gmake[2]: Leaving directory 
'/Users/osxbuilder/Projects/git_repos/D/dmd/druntime'
gmake[2]: Leaving directory 
'/Users/osxbuilder/Projects/git_repos/D/dmd/druntime'
/Users/osxbuilder/Projects/git_repos/D/dmd/generated/osx/release/64/dmd -conf= 
-I../dmd/druntime/import  -w -preview=dip1000 -preview=dtorfields 
-preview=fieldwise -m64 -fPIC -O -release -unittest -version=StdUnittest -c 
-ofgenerated/osx/release/64/unittest/std/range/package.o std/range/package.d
3
0.043s PASS debug64 std.array
0.009s PASS debug64 std.ascii
0.019s PASS debug64 std.base64
0.054s PASS debug64 std.bigint
0.026s PASS debug64 std.bitmanip
0.058s PASS debug64 std.checkedint
0.000s PASS debug64 std.complex
0.039s PASS debug64 std.concurrency
1.122s PASS debug64 std.conv
0.053s PASS debug64 std.csv
[Snip]
0.000s PASS release64 std.complex
Ignoring std.socket(1001) test failure (likely caused by flaky environment): 
Assertion failure
0.909s PASS debug64 std.socket
[Snip]
0.129s PASS release64 std.path
[Snip]
Ignoring std.socket(1001) test failure (likely caused by flaky environment): 
Assertion failure
[Snip]
gmake[1]: Leaving directory '/Users/osxbuilder/Projects/git_repos/D/phobos'
0.000s PASS release64 std.internal.cstring
0.000s PASS release64 std.internal.entropy
0.000s PASS release64 std.internal.math.biguintcore
0.000s PASS release64 std.internal.math.biguintnoasm
0.000s PASS release64 std.internal.math.errorfunction
0.001s PASS release64 std.internal.math.gammafunction
0.000s PASS release64 std.internal.scopebuffer
0.000s PASS release64 std.internal.test.dummyrange
0.000s PASS release64 std.internal.test.range
0.000s PASS release64 std.typetuple
gmake[1]: Leaving directory '/Users/osxbuilder/Projects/git_repos/D/phobos'
gmake: Leaving directory '/Users/osxbuilder/Projects/git_repos/D/phobos'

The build requires using ldmd2 (as a wrapper for ldc2) and gmake (GNU Make
4.x, as the system make is too old). Two issues were identified during
testing:
1. Critical: A bug in phobos/std/path.d causes a crash (Out of Memory) on
    macOS. A patch is required for tests to pass.
2. Non-Critical: A test in phobos/std/socket.d fails due to missing IPv6
    reverse DNS records on the network, but this is a "soft" failure that is
    ignored by the test runner by default.

Issue Details

  1. Crash in std.path (Fixed by Patch)
   * File: phobos/std/path.d (around line 4120)
   * Cause: The function expandFromDatabase calls getpwnam_r. On macOS, when the
     buffer is too small, it returns ERANGE (34) but sets errno to EINVAL (22).
     The existing code switches on errno, hits the default case, and throws
     onOutOfMemoryError.
   * Fix: The code should switch on the return value (passResult) which
     correctly contains ERANGE, allowing the loop to resize the buffer and
     retry.

  2. Flaky Test in std.socket (Ignored)
   * File: phobos/std/socket.d (Line 1006)
   * Message: Ignoring std.socket(1006) test failure...
   * Cause: The test resolves www.digitalmars.com and expects the reverse DNS
     lookup of the resulting IP to match the hostname. On your network, it
     resolves to an IPv6 address (2607:fc50:...) which lacks a PTR (reverse DNS)
     record, causing the assertion to fail.
   * Impact: This is a "soft" failure handled by softUnittest in the test suite,
     so it does not fail the build unless -debug=std_socket is passed. No action
     is needed.
      • Re: ... Richard (Rikki) Andrew Cattermole via Digitalmars-d-announce
        • ... jmh530 via Digitalmars-d-announce
          • ... jmh530 via Digitalmars-d-announce
          • ... Richard (Rikki) Andrew Cattermole via Digitalmars-d-announce
            • ... jmh530 via Digitalmars-d-announce
              • ... Richard (Rikki) Andrew Cattermole via Digitalmars-d-announce
      • Re: ... Steven Schveighoffer via Digitalmars-d-announce
        • ... jmh530 via Digitalmars-d-announce
        • ... confuzzled via Digitalmars-d-announce
          • ... Richard (Rikki) Andrew Cattermole via Digitalmars-d-announce
            • ... confuzzled via Digitalmars-d-announce
              • ... Richard (Rikki) Andrew Cattermole via Digitalmars-d-announce
              • ... confuzzled via Digitalmars-d-announce
              • ... Richard (Rikki) Andrew Cattermole via Digitalmars-d-announce
  • Re: http://do... zjh via Digitalmars-d-announce

Reply via email to