Release D 2.087.0

Vladimir Panteleev thecybershadow.lists at gmail.com
Mon Jul 15 11:06:34 UTC 2019


On Friday, 5 July 2019 at 03:47:20 UTC, Jonathan M Davis wrote:
> Yeah. I ran into the same problem with my own build tool. There 
> wasn't previously an rt folder in the imports. It was all 
> hidden in the implementation, and my build tool didn't copy it 
> over, resulting in confusing errors at first when druntime was 
> recently changed to have an rt folder in the imports. I think 
> that for druntime, it currently works to just copy over 
> everything in the import folder, whereas with Phobos, you have 
> to copy over specific directories (std and etc IIRC). So, for 
> Phobos, you can't just grab everything from a single folder, 
> and it may have been the case with druntime at one point that 
> you couldn't either (I'm not sure). So, it doesn't really 
> surprise me that digger broke. Any time that a tool is having 
> to duplicate any logic from the build system (even if it's just 
> which files to grab to install rather than for the build 
> itself), it risks breaking any time that the build system is 
> altered.

Digger has a good reason and a not-so-good reason to avoid using 
the included build system logic.

The good reason is that Digger attempts to support building a 
range of D versions as large as possible on modern systems. 
Sometimes, that means patching or entirely avoiding parts of the 
build system included with the D source code. However, this was 
not the case in this situation.

The not-so-good reason, and the root issue here, is the "digger 
install" functionality, which attempts to merge an existing 
"standard" D installation with one built by Digger. At the time I 
implemented it, we didn't have a good well-defined process of 
building release archives (rather, it was the duty of the release 
manager at the time to get it right), so, there was no way for 
Digger to know how to correctly build a complete D distribution 
including all the extra files which are not versioned, but 
nevertheless included in the archives; "digger install" was thus 
created as a work-around for that situation. This Digger feature 
has a hard-coded list of objects it needs to patch / update, 
which as you can guess did not include the "rt" package from 
Druntime.



More information about the Digitalmars-d-announce mailing list