Hadrian questions

Richard Eisenberg rae at cs.brynmawr.edu
Fri Jan 25 13:18:08 UTC 2019


Maybe I'm just lazy, but would it be possible to shorten these? Specifically, could there be a root-level file `build` that triggers Hadrian? That way, I could just say ./build instead of hadrian/build.sh.

Actually, even that isn't quite right. It is common, for example, for me to be deep in the testsuite, trying to fix a test. I twiddle something (say, the output file), and then I want to rerun the test. But now I have to go back out to the root of my tree to run the test, no? So: I think it would be very convenient to make a script we can all install (in our PATH) that will search for hadrian's build.sh and run it. Then, we can just say `build` (or whatever we name the script) anywhere in a tree. Of course, I could just do this locally, but I doubt I'm the only one who would enjoy it.

Also, I just had a look at https://gitlab.haskell.org/ghc/ghc/blob/master/hadrian/doc/testsuite.md, and I don't see a way to run just one directory of the testsuite. I use that ability currently quite often (because I know that I've mucked with the typechecker, so I just run the typecheck tests before doing full CI). Is this possible?

Thanks for all the work on this!
Richard

> On Jan 25, 2019, at 3:22 AM, Matthew Pickering <matthewtpickering at gmail.com> wrote:
> 
> `make 2` should be somewhat equivalent to `./hadrian/build.sh
> _build/stage1/bin/ghc` I think.
> 
> The problem is with the devel2 flavour itself. Tracked by
> https://ghc.haskell.org/trac/ghc/ticket/16210
> 
> The `hadrian/build.sh` script uses `cabal new-build` so the
> dependencies should be shared already when possible.
> 
> Cheers,
> 
> Matt
> 
> On Fri, Jan 25, 2019 at 4:07 AM Richard Eisenberg <rae at cs.brynmawr.edu> wrote:
>> 
>> In the "devel2" flavor, I also seem to have built Haddock. `make` didn't do this with devel2, and I'd prefer Hadrian didn't, too.
>> 
>> Maybe I'm not really on the devel2 flavor?
>> 
>>> On Jan 24, 2019, at 11:02 PM, Richard Eisenberg <rae at cs.brynmawr.edu> wrote:
>>> 
>>> As suggested, I'm trying out Hadrian. I have a few questions.
>>> 
>>> - After building GHC the first time, I often go into the /ghc directory and then do `make 2` to build just the stage-2 compiler. Is that now the same as `build --freeze1`? It would seem not (I haven't tested), because running `make 2` builds only the compiler, not the libraries. Can this workflow be replicated in Hadrian?
>>> 
>>> - I have `userDefaultFlavour = "devel2"` in my hadrian/UserSettings.hs file. But I see build artifacts during compilation of stage-2 that have dyn_o and p_o extensions. I don't want these. Have I done something wrong? Or are these artifacts now necessary?
>>> 
>>> - I have quite a few ghc directories. What are the dependencies of Hadrian so that I can install these into my global package database and avoiding rebuilding them for each ghc tree? (Please don't tell me that the global package database is bad for my health. I know that, and I know why, but it's still terribly convenient, and I'm happy to pay the occasional price for that convenience.)
>>> 
>>> I'm sure I'll have more questions.
>>> 
>>> Thanks!
>>> Richard
>>> _______________________________________________
>>> ghc-devs mailing list
>>> ghc-devs at haskell.org
>>> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>> 
>> _______________________________________________
>> ghc-devs mailing list
>> ghc-devs at haskell.org
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs



More information about the ghc-devs mailing list