Index | Thread | Search

From:
Stuart Henderson <stu@spacehopper.org>
Subject:
Re: UNBREAK/UPDATE: lang/dmd 2.106.0 => 2.108.1, and LTS bootstrap
To:
Brian Callahan <bcallah@posteo.net>
Cc:
OpenBSD Ports ML <ports@openbsd.org>
Date:
Tue, 28 May 2024 12:44:02 +0100

Download raw body.

Thread
On 2024/05/22 16:02, Brian Callahan wrote:
> On 5/20/2024 9:20 PM, Brian Callahan wrote:
> > Hi ports --
> > 
> > Attached is a diff to unbreak and update the reference D compiler.
> > 
> > In addition, this update includes what I am hoping can serve as an LTS
> > bootstrap compiler. Very old versions of the D compiler, all the way
> > back to 2.076.1, can bootstrap the current D compiler. The bootstrap
> > compiler was built with -static using GDC 14.1 and therefore doesn't
> > have any library dependencies. I would like to be able to use this as an
> > LTS bootstrap compiler until either it no longer builds modern versions
> > of the D compiler or no longer runs on OpenBSD (or until I feel like
> > giving it an update). Should make updating as easy as cranking version
> > number, updating patches, and updating plist.
> > 
> > OK?
> > 
> > ~Brian
> 
> Updated diff, now including i386 support using the same process to
> create a bootstrap compiler.

fwiw, since most incompatibilities are in the interface to the kernel,
this is actually likely to last _less_ long than using shared libc with a
hack to allow using (e.g. by copying) the most recent libc from /usr/lib
over the top.

libc rarely changes in a way which is _really_ backwards-incompatible
way for most programs (when functions are removed from libc, obviously
they are not going to be ones which are frequently used. and types of
parameters for existing functions in libc don't change much). whereas
kernel/userland interfaces change relatively often (but are often not
noticed because a libc change, even one _without_ a bump, will fix
them).