ldc-developers / ldc2.snap

Snap package definition for LDC, the LLVM-based D compiler
11 stars 4 forks source link

Rework ldc-bootstrap to use the same compiler version as the release #76

Closed WebDrake closed 5 years ago

WebDrake commented 5 years ago

LDC v1.12.0+ supports LLVM 7, but v0.17.6 does not. This means that to build more recent LDC releases with the latest LLVM we will either need to build multiple LLVMs (!) or change the bootstrap compiler.

This patch implements an alternative to the solution in https://github.com/ldc-developers/ldc2.snap/pull/75 using a technique already used by upstream LDC package builds: the bootstrap compiler is the same version as the one to be released, built with minimal features using the host system's LDC but the latest LLVM. This means that we can take advantage of the most up to date compiler features when building the final release.

Note that an alternative would be to use build-snaps for the LDC used to build ldc-bootstrap. This is avoided for now since avoiding having any snap-package dependencies should make it easier to build the package on a wider variety of systems.

WebDrake commented 5 years ago

@kinke is this more in line with what you had in mind?

kinke commented 5 years ago

Yeah, appears good.