Jump to page: 1 2
Thread overview
Auto-bootstrapping builds of LDC with DDMD frontend
Jan 29, 2017
Johan Engelen
Jan 30, 2017
David Nadlinger
Jan 30, 2017
Matthias Klumpp
Jan 30, 2017
David Nadlinger
Jan 30, 2017
David Nadlinger
Jan 31, 2017
Pjotr Prins
Jan 31, 2017
Matthias Klumpp
Jan 31, 2017
kinke
Feb 01, 2017
David Nadlinger
January 29, 2017
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
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
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
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
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
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
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
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
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
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.
« First   ‹ Prev
1 2