Thread overview | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
March 24, 2020 Getting a development dmd tree going | ||||
---|---|---|---|---|
| ||||
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 Re: Getting a development dmd tree going | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrei Alexandrescu | 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 Re: Getting a development dmd tree going | ||||
---|---|---|---|---|
| ||||
Posted in reply to Steven Schveighoffer | 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 Re: Getting a development dmd tree going | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | 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 Re: Getting a development dmd tree going | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | 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 Re: Getting a development dmd tree going | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrei Alexandrescu | 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 Re: Getting a development dmd tree going | ||||
---|---|---|---|---|
| ||||
Posted in reply to Steven Schveighoffer | 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 Re: Getting a development dmd tree going | ||||
---|---|---|---|---|
| ||||
Posted in reply to Mathias Lang | 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 Re: Getting a development dmd tree going | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jacob Carlborg | 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 Re: Getting a development dmd tree going | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | 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
|
Copyright © 1999-2021 by the D Language Foundation