Jump to page: 1 2
Thread overview
Getting a development dmd tree going
Mar 25, 2020
Walter Bright
Mar 25, 2020
Walter Bright
Mar 25, 2020
rikki cattermole
Mar 25, 2020
Mathias Lang
Mar 25, 2020
WebFreak001
Mar 25, 2020
Jacob Carlborg
Mar 25, 2020
Mathias Lang
Mar 25, 2020
Jacob Carlborg
Mar 25, 2020
Guillaume Piolat
March 24, 2020
I tried to update my dmd installation on a OSX machine due to https://issues.dlang.org/show_bug.cgi?id=20019. Sadly I reached an impasse.

First I tried to do what worked in the past - git rebase everything then build dmd with AUTO_BOOTSTRAP=1, then druntime, then phobos, then tools. That didn't work for reasons I mentioned in a couple of comments at https://issues.dlang.org/show_bug.cgi?id=20019.

Then I thought I'd fall back to a more basic procedure, listed in https://wiki.dlang.org/Starting_as_a_Contributor:

wget https://raw.githubusercontent.com/dlang/tools/master/setup.sh
bash setup.sh

That failed, too, apparently because building dmd first requires a preexisting copy of dmd to build build.d. The setup procedure does not cover that case.

So, shouldn't the procedure for getting D set up from scratch Just Work(tm)?

Thanks!
March 24, 2020
On 3/24/20 8:34 PM, Andrei Alexandrescu wrote:
> I tried to update my dmd installation on a OSX machine due to https://issues.dlang.org/show_bug.cgi?id=20019. Sadly I reached an impasse.

Yeah, there's a whole swath of dmd binaries that don't work on Catalina.

> 
> First I tried to do what worked in the past - git rebase everything then build dmd with AUTO_BOOTSTRAP=1, then druntime, then phobos, then tools. That didn't work for reasons I mentioned in a couple of comments at https://issues.dlang.org/show_bug.cgi?id=20019.
> 
> Then I thought I'd fall back to a more basic procedure, listed in https://wiki.dlang.org/Starting_as_a_Contributor:
> 
> wget https://raw.githubusercontent.com/dlang/tools/master/setup.sh
> bash setup.sh

That probably needs updating.

> 
> That failed, too, apparently because building dmd first requires a preexisting copy of dmd to build build.d. The setup procedure does not cover that case.

Hm, here's what I have done:

1. download the latest copy of dmd zip file, expand it.
2. rm -rf src/*
3. git clone all 3 repositories into the src directory
4. use the downloaded bin file to build dmd (may have to set up your path). Or alternatively use a package installer (I use dvm). make -f posix.mak should work as long as there's a dmd in your path.
5. make -f posix.mak should work in druntime and phobos at that point.

Not a "batteries included" solution, but it works for me.

> So, shouldn't the procedure for getting D set up from scratch Just Work(tm)?

I literally haven't changed anything in that setup for years (I just checked and the VERSION file says 2.064). I think maybe I had to update the dmd.conf once.

I also do symlinks from the build artifacts into the bin directory so I can run the development dmd on other things.

-Steve
March 24, 2020
On 3/24/2020 5:58 PM, Steven Schveighoffer wrote:
> Yeah, there's a whole swath of dmd binaries that don't work on Catalina.

With which dmd release do they work on Catalina?
March 24, 2020
On 3/24/20 9:37 PM, Walter Bright wrote:
> On 3/24/2020 5:58 PM, Steven Schveighoffer wrote:
>> Yeah, there's a whole swath of dmd binaries that don't work on Catalina.
> 
> With which dmd release do they work on Catalina?

I have these compilers installed with dvm:

dmd-2.040
dmd-2.050
dmd-2.051
dmd-2.057
dmd-2.058
dmd-2.060
dmd-2.064
dmd-2.065.0
dmd-2.066.0
dmd-2.067.1
dmd-2.068.0
dmd-2.068.1
dmd-2.068.2
dmd-2.069.0
dmd-2.069.1
dmd-2.070.0
dmd-2.070.2
dmd-2.071.0
dmd-2.071.0-b1
dmd-2.071.1
dmd-2.072.0
dmd-2.072.2
dmd-2.073.0
dmd-2.073.1
dmd-2.074.0
dmd-2.074.1
dmd-2.075.0
dmd-2.075.1
dmd-2.076.0
dmd-2.076.1
dmd-2.077.0
dmd-2.078.0
dmd-2.078.1
dmd-2.079.0
dmd-2.080.0
dmd-2.080.1
dmd-2.081.0
dmd-2.082.1
dmd-2.083.0
dmd-2.086.0
dmd-2.086.1
dmd-2.088.0
dmd-2.089.0
dmd-2.089.1
dmd-2.090.0
dmd-2.090.1


I did a simple test through all of them, just dmd --version. I get this error:

dyld: lazy symbol binding failed: Symbol not found: _dyld_enumerate_tlv_storage


Starting at 2.073.0

The thing starts working again with 2.088.0.

So all the compilers from 2.073 - 2.087 are not usable on Catalina, according to that test.

The ones before are usable (or at least will run), the ones after are usable.

-Steve
March 25, 2020
On Wednesday, 25 March 2020 at 01:37:12 UTC, Walter Bright wrote:
> On 3/24/2020 5:58 PM, Steven Schveighoffer wrote:
>> Yeah, there's a whole swath of dmd binaries that don't work on Catalina.
>
> With which dmd release do they work on Catalina?

Things were fixed in https://dlang.org/changelog/2.087.1.html thanks to Jacob.

It's not only DMD... Anything compiled with DMD < 2.087.1  since the introduction of native TLS won't work on Catalina.
It's been a major pain as it creeps up everywhere (e.g. IDE support doesn't work out of the box because of https://github.com/dlang-community/DCD/issues/610 ).

Jacob contacted Apple who didn't to care much for the issue: https://github.com/dlang/druntime/pull/2666#issuecomment-568177369
March 25, 2020
On Wednesday, 25 March 2020 at 00:34:27 UTC, Andrei Alexandrescu wrote:
> I tried to update my dmd installation on a OSX machine due to https://issues.dlang.org/show_bug.cgi?id=20019. Sadly I reached an impasse.

FWIW, I would just use Homebrew to install `dmd` and save myself a lot of trouble.

Although, you probably want to go with LDC instead of DMD on Mac because debug infos are utterly broken (among other things).
See [this report](https://issues.dlang.org/show_bug.cgi?id=20460) for the DMD bug, and [this report](https://issues.dlang.org/show_bug.cgi?id=20510) for why things won't work out of the box on any compiler.


March 25, 2020
On 3/24/2020 6:55 PM, Steven Schveighoffer wrote:
> So all the compilers from 2.073 - 2.087 are not usable on Catalina, according to that test.
> 
> The ones before are usable (or at least will run), the ones after are usable.

Thank you. This should go in the documentation somewhere.

March 25, 2020
On 2020-03-25 05:22, Mathias Lang wrote:

> Although, you probably want to go with LDC

LDC has the same problem. Not sure which version of LDC works.

-- 
/Jacob Carlborg
March 25, 2020
On Wednesday, 25 March 2020 at 08:48:39 UTC, Jacob Carlborg wrote:
> On 2020-03-25 05:22, Mathias Lang wrote:
>
>> Although, you probably want to go with LDC
>
> LDC has the same problem. Not sure which version of LDC works.

Use LDC 1.17.0 or later for Catalina support.
March 25, 2020
On 3/25/20 3:40 AM, Walter Bright wrote:
> On 3/24/2020 6:55 PM, Steven Schveighoffer wrote:
>> So all the compilers from 2.073 - 2.087 are not usable on Catalina, according to that test.
>>
>> The ones before are usable (or at least will run), the ones after are usable.
> 
> Thank you. This should go in the documentation somewhere.
> 

I wonder if it wouldn't be worth doing point releases for at least some of the affected versions. 2.088 isn't that old. Or maybe as needed when people are locked to a certain version that doesn't work for them.

But I suppose OSX isn't a huge target platform for D developers.

-Steve
« First   ‹ Prev
1 2