Thread overview | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
January 29, 2017 Auto-bootstrapping builds of LDC with DDMD frontend | ||||
---|---|---|---|---|
| ||||
Hello all, This question relates to my experience snap-packaging LDC (the current package is still pending review in the Ubuntu store, BTW). Since building more recent LDC releases requires a working D compiler, the snap package includes `ldc` as a build dependency (which means in practice, the snapcraft build process installs the ldc deb package included in the standard Ubuntu repositories). However, it would definitely be nicer not to have to rely on this being available. Past threads on the subject describe how to bootstrap manually: https://forum.dlang.org/post/mailman.1044.1471415063.3131.digitalmars-d-ldc@puremagic.com ... but I'm unaware of any auto-bootstrap option akin to dmd's `AUTO_BOOTSTRAP=1` make option. Is there anything currently available or in the works for auto-bootstrapping? Thanks & best wishes, -- Joe |
January 29, 2017 Re: Auto-bootstrapping builds of LDC with DDMD frontend | ||||
---|---|---|---|---|
| ||||
Posted in reply to Joseph Rushton Wakeling | On Sunday, 29 January 2017 at 18:32:28 UTC, Joseph Rushton Wakeling wrote:
>
> ... but I'm unaware of any auto-bootstrap option akin to dmd's `AUTO_BOOTSTRAP=1` make option.
>
> Is there anything currently available or in the works for auto-bootstrapping?
Not that I know of.
I won't work on it, but perhaps you can add a simple shell script that downloads the latest 0.17.x release source and builds/installs it ?
- Johan
|
January 29, 2017 Re: Auto-bootstrapping builds of LDC with DDMD frontend | ||||
---|---|---|---|---|
| ||||
Posted in reply to Johan Engelen | On Sunday, 29 January 2017 at 21:29:52 UTC, Johan Engelen wrote: > Not that I know of. OK, no worries. Just wanted to check I wasn't missing something. > I won't work on it, but perhaps you can add a simple shell script that downloads the latest 0.17.x release source and builds/installs it ? Actually I think it's possible to do entirely from within the `snapcraft.yaml` config file. Probably the best way is to just define a 'part' that builds LDC 0.17.x, and then use the result to build the actual _wanted_ LDC. It's probably quite straightforward, just wanted to check if it was necessary in the first place. |
January 30, 2017 Re: Auto-bootstrapping builds of LDC with DDMD frontend | ||||
---|---|---|---|---|
| ||||
Posted in reply to Joseph Rushton Wakeling | On 29 Jan 2017, at 23:13, Joseph Rushton Wakeling via digitalmars-d-ldc wrote:
> It's probably quite straightforward, just wanted to check if it was necessary in the first place.
We don't have an alternative right now – in a non-distro setting, though, it's literally just downloading and extracting the binary release.
This is not to say that such additions wouldn't be welcome, though, if they are sufficiently robust.
— David
|
January 30, 2017 Re: Auto-bootstrapping builds of LDC with DDMD frontend | ||||
---|---|---|---|---|
| ||||
Posted in reply to David Nadlinger | On Monday, 30 January 2017 at 17:33:19 UTC, David Nadlinger wrote:
> This is not to say that such additions wouldn't be welcome, though, if they are sufficiently robust.
If I come up with something I'll certainly share.
|
January 30, 2017 Re: Auto-bootstrapping builds of LDC with DDMD frontend | ||||
---|---|---|---|---|
| ||||
Posted in reply to Joseph Rushton Wakeling | On Monday, 30 January 2017 at 18:01:28 UTC, Joseph Rushton Wakeling wrote:
> On Monday, 30 January 2017 at 17:33:19 UTC, David Nadlinger wrote:
>> This is not to say that such additions wouldn't be welcome, though, if they are sufficiently robust.
>
> If I come up with something I'll certainly share.
Auto-bootstrapping would help us a lot in Debian too - bootstrapping is a bit annoying at time.
|
January 30, 2017 Re: Auto-bootstrapping builds of LDC with DDMD frontend | ||||
---|---|---|---|---|
| ||||
Posted in reply to Matthias Klumpp | On Monday, 30 January 2017 at 18:32:35 UTC, Matthias Klumpp wrote:
> Auto-bootstrapping would help us a lot in Debian too - bootstrapping is a bit annoying at time.
Why do you need to bootstrap, though – can't you just have a build-time dependency on a D compiler?
— David
|
January 30, 2017 Re: Auto-bootstrapping builds of LDC with DDMD frontend | ||||
---|---|---|---|---|
| ||||
Posted in reply to David Nadlinger | On Monday, 30 January 2017 at 21:06:44 UTC, David Nadlinger wrote:
> Why do you need to bootstrap, though – can't you just have a build-time dependency on a D compiler?
(Maybe a separate helper package with the C++-only version, if you only have LDC available and can't directly depend on an older version of the same package.)
|
January 31, 2017 Re: Auto-bootstrapping builds of LDC with DDMD frontend | ||||
---|---|---|---|---|
| ||||
Posted in reply to David Nadlinger | On Monday, 30 January 2017 at 21:13:54 UTC, David Nadlinger wrote:
> On Monday, 30 January 2017 at 21:06:44 UTC, David Nadlinger wrote:
>> Why do you need to bootstrap, though – can't you just have a build-time dependency on a D compiler?
>
> (Maybe a separate helper package with the C++-only version, if you only have LDC available and can't directly depend on an older version of the same package.)
With GNU Guix Fred Muriithi created a package for ldc 1.1.0 that bootstraps from source successfully. It is part of GNU Guix now and will run on any Linux distribution (even old ones). Installation takes ~15 minutes if you install Guix from scratch.
|
January 31, 2017 Re: Auto-bootstrapping builds of LDC with DDMD frontend | ||||
---|---|---|---|---|
| ||||
Posted in reply to David Nadlinger | On Monday, 30 January 2017 at 21:06:44 UTC, David Nadlinger wrote:
> On Monday, 30 January 2017 at 18:32:35 UTC, Matthias Klumpp wrote:
>> Auto-bootstrapping would help us a lot in Debian too - bootstrapping is a bit annoying at time.
>
> Why do you need to bootstrap, though – can't you just have a build-time dependency on a D compiler?
We need to have one in the first place ^^ - if GDC could compile LDC, we could solve the issue that way.
Right now, we upload a new version of LDC, let it fail build or not-build, then Markos logs into a porterbox, bootstraps the current LDC there, rebuilds it with itself and uploads the resulting binaries to the archive. So, LDC can depend on itself then.
This works, until one LDC release fails to compile the other properly, then the bootstrap process starts again.
Btw, we have a request for an arm64 LDC package, but so far bootstrapping on that platform was unsuccessful.
|
Copyright © 1999-2021 by the D Language Foundation