Bump the minimal version required to compile DMD to 2.076.1

Jonathan M Davis newsgroup.d at jmdavisprog.com
Wed Jan 17 05:50:12 UTC 2018


On Wednesday, January 17, 2018 05:39:31 Joakim via Digitalmars-d wrote:
> On Tuesday, 16 January 2018 at 22:11:46 UTC, H. S. Teoh wrote:
> > On Tue, Jan 16, 2018 at 10:13:31PM +0000, Johan Engelen via
> > Digitalmars-d wrote: [...]
> >
> >> We shouldn't bump the required dlang version while knowing
> >> that it will break current distribution packaging. Before
> >> bumping the dlang version to something that would require more
> >> than one bootstrap step from C++, let's make sure that the
> >> distributions that we care about have something set up
> >> _already_ that meets the new dlang version requirement.
> >
> > [...]
> >
> > Is there currently a viable cross-compiler for D?  That would
> > solve, in theory anyway, the bootstrapping problem.  I suppose
> > to be truly viable, we'd need dmd to be able to cross-compile,
> > which AFAIK it can't just yet.
>
> Ldc has proven to be very viable.  kinke has demonstrated using
> it on linux/x64 to cross-compile for Windows:
>
> https://github.com/ldc-developers/ldc/releases/tag/v1.3.0
>
> The ldc package for Android/ARM in the Termux app is
> cross-compiled from linux/x64:
>
> https://github.com/termux/termux-packages/blob/master/packages/ldc/build.s
> h
>
> However, while this makes it easier to do the initial port to a
> new platform, you still come up against the bootstrapping from
> source requirements of source package repositories, as I pointed
> out above.

_Most_ languages have a compiler written in their own language rather than
C/C++, and I cannot imagine that it's common practice for any of them to go
back to a version that was built using C/C++ and bootstrap from there.

Honestly, I don't see how this could possibly be an issue. This is something
that is already dealt with all the time by folks packaging stuff - whether
you're talking ports for BSD or packages for whatever Linux distro you want
- this is something that they're already dealing with without requiring that
everything be built starting with a C/C++ compiler.

I fully expect that in the long-term, folks porting to new platforms will
use a cross-compiler, and anyone building packages for whatever OS they're
dealing with is just going to use the existing compiler. That's what folks
do even when they're building the entire distro from source. They use
existing compilers to do it. They may not then package the existing
compilers, but they're going to use ones that they already have - either on
a host system or that they pull them in from elsewhere.

Honestly, I think that this whole conversation is worrying about a whole lot
of nothing. We're dealing with a problem that has already been solved by
many other languages, and I don't think that you're going to find any of
them claiming that you need to use a compiler from several years ago to
compile the current compiler, let alone claiming that you need to compile a
C/C++ version of their compiler so that you can build the current compiler.

- Jonathan M Davis



More information about the Digitalmars-d mailing list