
Richard Eisenberg
On Jul 23, 2019, at 10:48 PM, Daniel Gröber
wrote: I don't think you ever mentioned -- are you already using `git worktree` to get multiple source checkouts or are you working off a single build tree? I find using it essential to reducing context switching overhead.
This is a good point. No, I'm not currently. Some post I read (actually, I think the manpage) said that `git worktree` and submodules don't mix, so I got scared off. Regardless, I don't think worktree will solve my problem exactly. It eliminates the annoyance of shuttling commits from one checkout to another, but that's not really a pain point for me. (Yes, it's a small annoyance, but I hit it only rarely, and it's quick to sort out.) Perhaps I'm missing something though about worktree that will allow more, e.g., sharing of build products. Am I?
Sadly no. Recently we (specifically David Eichmann) invested quite some effort in trying to enable Shake's support for caching in Hadrian which would have allowed sharing of build artifacts between trees. Unfortunately the challenges here were significantly greater than we expected. David summarized the effort in his recent blog post [1]. Cheers, - Ben [1] https://www.haskell.org/ghc/blog/20190731-hadrian-cloud-builds.html