Hadrian
Andrey Mokhov
andrey.mokhov at newcastle.ac.uk
Tue Sep 4 17:48:42 UTC 2018
Thanks Simon,
I fixed the "verboseCommands" typo.
Regarding various available predicates: indeed, we don't currently have a comprehensive description -- I've opened an issue for this and will hopefully fix it soon.
In the meanwhile, there are a few examples of predicates in the rest of the doc/user-settings.md document, for example here: https://github.com/snowleopard/hadrian/blob/master/doc/user-settings.md#command-line-arguments.
The `input` and `output` predicates accept Shake's `FilePattern` as parameters -- see the documentation for it here:
https://hackage.haskell.org/package/shake-0.16.4/docs/Development-Shake.html#v:-63--61--61-
Cheers,
Andrey
-----Original Message-----
From: Simon Peyton Jones [mailto:simonpj at microsoft.com]
Sent: 04 September 2018 16:49
To: Andrey Mokhov <andrey.mokhov at newcastle.ac.uk>; Alp Mestanogullari <alp at well-typed.com>
Cc: ghc-devs <ghc-devs at haskell.org>
Subject: RE: Hadrian
Very confusingly
https://github.com/snowleopard/hadrian/blob/master/doc/user-settings.md#verbose-command-lines
speaks about verboseCommmands PLURAL, whereas it should say verboseCommand SINGLUAR.
Moreover, what is the language things you can say (i.e. where is it documented). The "//" business, and what patterns can occur. What things other than "//" can you have? What about 'input' etc?
Simon
| -----Original Message-----
| From: Andrey Mokhov <andrey.mokhov at newcastle.ac.uk>
| Sent: 30 August 2018 12:26
| To: Simon Peyton Jones <simonpj at microsoft.com>; Alp Mestanogullari
| <alp at well-typed.com>
| Cc: ghc-devs <ghc-devs at haskell.org>
| Subject: RE: Hadrian
|
| Simon,
|
| If you want to see all command lines, you can pass '--verbose' or '-V'
| flag to Hadrian and it will then print out everything it does.
|
| But you can also choose which particular command lines to print in
| UserSettings, see:
|
| https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.c
| om%2Fsnowleopard%2Fhadrian%2Fblob%2Fmaster%2Fdoc%2Fuser-
| settings.md%23verbose-command-
| lines&data=02%7C01%7Csimonpj%40microsoft.com%7C0c6118a504f74269efd508
| d60e6b4fe7%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C63671225140342623
| 1&sdata=tMYhmIGMeVbBYjAtxWQTY5%2F4Kyfc4m981N4OTowGkbQ%3D&reserved
| =0
|
| So, you can do:
|
| verboseCommand = input "//GHC/Real.hs"
|
| Or, alternatively,
|
| verboseCommand = output "//GHC/Real.hi"
|
| Both should produce the same result (in theory).
|
| In general, we have the following documents on Hadrian:
|
| The README:
| https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.c
| om%2Fsnowleopard%2Fhadrian%2Fblob%2Fmaster%2FREADME.md&data=02%7C01%7
| Csimonpj%40microsoft.com%7C0c6118a504f74269efd508d60e6b4fe7%7C72f988bf86f
| 141af91ab2d7cd011db47%7C1%7C0%7C636712251403426231&sdata=7WigmQG7lbDd
| eyhYCSaKOQEb0eeZcn0iXAbAKdwZ5A4%3D&reserved=0
| How to use UserSettings:
| https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.c
| om%2Fsnowleopard%2Fhadrian%2Fblob%2Fmaster%2Fdoc%2Fuser-
| settings.md&data=02%7C01%7Csimonpj%40microsoft.com%7C0c6118a504f74269
| efd508d60e6b4fe7%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C63671225140
| 3426231&sdata=tRu2lO%2F6TNV3ao5tzNKO%2FAHJMWsxKX%2BqExHn78nuCvU%3D&am
| p;reserved=0
| An overview of build flavours:
| https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.c
| om%2Fsnowleopard%2Fhadrian%2Fblob%2Fmaster%2Fdoc%2Fflavours.md&data=0
| 2%7C01%7Csimonpj%40microsoft.com%7C0c6118a504f74269efd508d60e6b4fe7%7C72f
| 988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636712251403426231&sdata=Esye
| DdAKLV9DC3PUwkqsuQ4zGoOYKcaJeEov1BAH8lU%3D&reserved=0
|
| I hope the more Hadrian gets used, the more complete the documentation
| will become.
|
| Cheers,
| Andrey
|
| From: Simon Peyton Jones [mailto:simonpj at microsoft.com]
| Sent: 30 August 2018 12:19
| To: Simon Peyton Jones <simonpj at microsoft.com>; Alp Mestanogullari
| <alp at well-typed.com>; Andrey Mokhov <andrey.mokhov at newcastle.ac.uk>
| Cc: ghc-devs <ghc-devs at haskell.org>
| Subject: RE: Hadrian
|
| Sigh. As an inconvenient workaround, I tried adding {-# OPTIONS_GHC -
| dverbose-core2core #-} to GHC.Real, and then doing
| cabal new-run hadrian -- -c -j4 --flavour=quick --directory=".."
| in hadrian/
| That did recompile GHC.Real - but all the debug output disappeared!
| I tried adding {-# OPTIONS_GHC -ddebug-output #-} as well, but that
| didn't work.
| I'm stuck - any ideas?
| Simon
|
| From: ghc-devs <ghc-devs-bounces at haskell.org> On Behalf Of Simon Peyton
| Jones via ghc-devs
| Sent: 30 August 2018 12:12
| To: Alp Mestanogullari <alp at well-typed.com>; Andrey Mokhov
| <andrey.mokhov at newcastle.ac.uk>
| Cc: ghc-devs <ghc-devs at haskell.org>
| Subject: Hadrian
|
| Alp, Andrey
| The old build system printed out every command line; and I often copy-
| paste that info to build single modules.
| Eg currently, when trying to understand #15570 I see a suspicious
| GHC.Real.hi. So I want to manually recompile GHC.Real (from base),
| adding some debug flags. How can I get the right command line to do that
| from the build log?
| Where is the "how to use Hadrian" wiki page? I know you've been writing
| one.
| Simon
More information about the ghc-devs
mailing list