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.

              • Re... Johannes Pfau via Digitalmars-d-announce
              • Re... Kagamin via Digitalmars-d-announce
              • Re... David Nadlinger via Digitalmars-d-announce
              • Re... David Nadlinger via Digitalmars-d-announce
              • Re... Vladimir Panteleev via Digitalmars-d-announce
              • Re... Johannes Pfau via Digitalmars-d-announce
              • Re... David Nadlinger via Digitalmars-d-announce
              • Re... Johannes Pfau via Digitalmars-d-announce
              • Re... David Nadlinger via Digitalmars-d-announce
        • Re: Release D 2... Jonathan M Davis via Digitalmars-d-announce
        • Re: Release D 2... Vladimir Panteleev via Digitalmars-d-announce
  • Re: Release D 2.087.0 Mike Parker via Digitalmars-d-announce

Reply via email to