
Alp You've written a helpful wiki page describing how to use Hadrian https://gitlab.haskell.org/ghc/ghc/blob/master/hadrian/doc/make.md Could you document where build-products live? I often look at .hi files. Could you add * How to do the equivalent of "sh validate" * When validating, how to do things like this: GhcStage1HcOpts += -DDEBUG -O GhcStage2HcOpts += -Wwarn -ticky GhcLibHcOpts += -ticky -Wwarn BUILD_PROF_LIBS = NO SplitObjs = YES HADDOCK_DOCS = NO BUILD_SPHINX_HTML = NO BUILD_SPHINX_PDF = NO * After modifying the source code, how to make stage1 compiler (only). In 'make' it is $ cd compiler; make 1 * After modifying the source code, build the stage2 compiler (only). In 'make' it is $ cd compiler; make 2 Perhaps you say build -freeze1? * In the testsuite, how to use the stage1 compiler $ make stage=1 TEST=T2543 * In nofib, how to build one benchmark, with extra flags, perhaps even with the stage1 compiler $ make stage=1 EXTRA_HC_OPTS="-ticky -ddump-simpl -ddump-stg" Thanks! Simon

Hello, A quick note about that 'make.md' document: it's meant as a quick reference/cheatsheet (hence the _very_ lightweight format) for people familiar with the make build system. Hadrian's README [1] is a better place to start from in general and in fact answers or points to documents that answer some of your questions. I would perhaps recommend that you (and others) wander through that document and any other doc that seems relevant to your interests/workflow (e.g testsuite.md, user-settings.md in your case) Hadrian is however currently lacking some knobs that are needed to support some of the things you're asking about. None of this implies a lot of work and they're all on my TODO. I will certainly make sure to post an update once this is taken care of, in addition to augmenting the relevant documents of course. For instance, we don't have a 'validate' rule at the moment, but we've now got all the pieces we need to write it. Once I get around to adding those knobs, I'll make sure that all your questions are answered in the documentation. Thanks for your initial feedback on this document! [1] https://gitlab.haskell.org/ghc/ghc/blob/master/hadrian/README.md On 08/01/2019 17:29, Simon Peyton Jones wrote:
Alp
You’ve written a helpful wiki page describing how to use Hadrian
https://gitlab.haskell.org/ghc/ghc/blob/master/hadrian/doc/make.md
Could you document where build-products live? I often look at .hi files.
Could you add
* How to do the equivalent of “sh validate” * When validating, how to do things like this:
GhcStage1HcOpts += -DDEBUG -O
GhcStage2HcOpts += -Wwarn -ticky
GhcLibHcOpts += -ticky -Wwarn
BUILD_PROF_LIBS = NO
SplitObjs = YES
HADDOCK_DOCS = NO
BUILD_SPHINX_HTML = NO
BUILD_SPHINX_PDF = NO
* After modifying the source code, how to make stage1 compiler (only). In ‘make’ it is
$ cd compiler; make 1
* After modifying the source code, build the stage2 compiler (only). In ‘make’ it is
$ cd compiler; make 2
Perhaps you say build –freeze1?
* In the testsuite, how to use the stage1 compiler
$ make stage=1 TEST=T2543
* In nofib, how to build one benchmark, with extra flags, perhaps even with the stage1 compiler
$ make stage=1 EXTRA_HC_OPTS=”-ticky -ddump-simpl -ddump-stg”
Thanks!
Simon
-- Alp Mestanogullari, Haskell Consultant Well-Typed LLP, https://www.well-typed.com/ Registered in England and Wales, OC335890 118 Wymering Mansions, Wymering Road, London, W9 2NF, England

A quick note about that 'make.md' document: it's meant as a quick reference/cheatsheet (hence the _very_ lightweight format) for people familiar with the make build system. Hadrian's README [1] is a better place to start from in general
OK super: can you say that at the start of https://gitlab.haskell.org/ghc/ghc/blob/master/hadrian/doc/make.md?
And point to https://gitlab.haskell.org/ghc/ghc/blob/master/hadrian/doc/make.md from the more comprehensive page.
So in the end they both refer to each other
S
From: Alp Mestanogullari

Sure thing, I'll push a patch today. On 09/01/2019 12:24, Simon Peyton Jones wrote:
A quick note about that 'make.md' document: it's meant as a quick reference/cheatsheet (hence the _very_ lightweight format) for people familiar with the make build system. Hadrian's README [1] is a better place to start from in general
OK super: can you say that at the start of https://gitlab.haskell.org/ghc/ghc/blob/master/hadrian/doc/make.md?
And point to https://gitlab.haskell.org/ghc/ghc/blob/master/hadrian/doc/make.md from the more comprehensive page.
So in the end they both refer to each other
S
*From:*Alp Mestanogullari
*Sent:* 09 January 2019 11:10 *To:* Simon Peyton Jones *Cc:* ghc-devs *Subject:* Re: Hadrian Hello,
A quick note about that 'make.md' document: it's meant as a quick reference/cheatsheet (hence the _very_ lightweight format) for people familiar with the make build system. Hadrian's README [1] is a better place to start from in general and in fact answers or points to documents that answer some of your questions. I would perhaps recommend that you (and others) wander through that document and any other doc that seems relevant to your interests/workflow (e.g testsuite.md, user-settings.md in your case)
Hadrian is however currently lacking some knobs that are needed to support some of the things you're asking about. None of this implies a lot of work and they're all on my TODO. I will certainly make sure to post an update once this is taken care of, in addition to augmenting the relevant documents of course. For instance, we don't have a 'validate' rule at the moment, but we've now got all the pieces we need to write it.
Once I get around to adding those knobs, I'll make sure that all your questions are answered in the documentation.
Thanks for your initial feedback on this document!
[1] https://gitlab.haskell.org/ghc/ghc/blob/master/hadrian/README.md https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitlab.haskell.org%2Fghc%2Fghc%2Fblob%2Fmaster%2Fhadrian%2FREADME.md&data=02%7C01%7Csimonpj%40microsoft.com%7C3025665679274a8486c808d676230b41%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636826290225890158&sdata=3ujKmq%2Ftj20oEEsTswgP2DRkXJ5bLHFSfGiMmBQKmZo%3D&reserved=0
On 08/01/2019 17:29, Simon Peyton Jones wrote:
Alp
You’ve written a helpful wiki page describing how to use Hadrian
https://gitlab.haskell.org/ghc/ghc/blob/master/hadrian/doc/make.md https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitlab.haskell.org%2Fghc%2Fghc%2Fblob%2Fmaster%2Fhadrian%2Fdoc%2Fmake.md&data=02%7C01%7Csimonpj%40microsoft.com%7C3025665679274a8486c808d676230b41%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636826290225890158&sdata=Hbk97%2B6Au9uC9YSWzDvLRDry25x9FxWxTVsgVVALONA%3D&reserved=0
Could you document where build-products live? I often look at .hi files.
Could you add
* How to do the equivalent of “sh validate” * When validating, how to do things like this:
GhcStage1HcOpts += -DDEBUG -O
GhcStage2HcOpts += -Wwarn -ticky
GhcLibHcOpts += -ticky -Wwarn
BUILD_PROF_LIBS = NO
SplitObjs = YES
HADDOCK_DOCS = NO
BUILD_SPHINX_HTML = NO
BUILD_SPHINX_PDF = NO
* After modifying the source code, how to make stage1 compiler (only). In ‘make’ it is
$ cd compiler; make 1
* After modifying the source code, build the stage2 compiler (only). In ‘make’ it is
$ cd compiler; make 2
Perhaps you say build –freeze1?
* In the testsuite, how to use the stage1 compiler
$ make stage=1 TEST=T2543
* In nofib, how to build one benchmark, with extra flags, perhaps even with the stage1 compiler
$ make stage=1 EXTRA_HC_OPTS=”-ticky -ddump-simpl -ddump-stg”
Thanks!
Simon
-- Alp Mestanogullari, Haskell Consultant Well-Typed LLP,https://www.well-typed.com/ https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.well-typed.com%2F&data=02%7C01%7Csimonpj%40microsoft.com%7C3025665679274a8486c808d676230b41%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636826290225900167&sdata=Oau6Enlm1yNMWM61U%2F8rUIwyTMQubwM3oEGXOQwNAS4%3D&reserved=0 Registered in England and Wales, OC335890 118 Wymering Mansions, Wymering Road, London, W9 2NF, England
-- Alp Mestanogullari, Haskell Consultant Well-Typed LLP, https://www.well-typed.com/ Registered in England and Wales, OC335890 118 Wymering Mansions, Wymering Road, London, W9 2NF, England

The patch is up on Gitlab: https://gitlab.haskell.org/ghc/ghc/merge_requests/96 On 09/01/2019 12:28, Alp Mestanogullari wrote:
Sure thing, I'll push a patch today.
On 09/01/2019 12:24, Simon Peyton Jones wrote:
A quick note about that 'make.md' document: it's meant as a quick reference/cheatsheet (hence the _very_ lightweight format) for people familiar with the make build system. Hadrian's README [1] is a better place to start from in general
OK super: can you say that at the start of https://gitlab.haskell.org/ghc/ghc/blob/master/hadrian/doc/make.md?
And point to https://gitlab.haskell.org/ghc/ghc/blob/master/hadrian/doc/make.md from the more comprehensive page.
So in the end they both refer to each other
S
*From:*Alp Mestanogullari
*Sent:* 09 January 2019 11:10 *To:* Simon Peyton Jones *Cc:* ghc-devs *Subject:* Re: Hadrian Hello,
A quick note about that 'make.md' document: it's meant as a quick reference/cheatsheet (hence the _very_ lightweight format) for people familiar with the make build system. Hadrian's README [1] is a better place to start from in general and in fact answers or points to documents that answer some of your questions. I would perhaps recommend that you (and others) wander through that document and any other doc that seems relevant to your interests/workflow (e.g testsuite.md, user-settings.md in your case)
Hadrian is however currently lacking some knobs that are needed to support some of the things you're asking about. None of this implies a lot of work and they're all on my TODO. I will certainly make sure to post an update once this is taken care of, in addition to augmenting the relevant documents of course. For instance, we don't have a 'validate' rule at the moment, but we've now got all the pieces we need to write it.
Once I get around to adding those knobs, I'll make sure that all your questions are answered in the documentation.
Thanks for your initial feedback on this document!
[1] https://gitlab.haskell.org/ghc/ghc/blob/master/hadrian/README.md https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitlab.haskell.org%2Fghc%2Fghc%2Fblob%2Fmaster%2Fhadrian%2FREADME.md&data=02%7C01%7Csimonpj%40microsoft.com%7C3025665679274a8486c808d676230b41%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636826290225890158&sdata=3ujKmq%2Ftj20oEEsTswgP2DRkXJ5bLHFSfGiMmBQKmZo%3D&reserved=0
On 08/01/2019 17:29, Simon Peyton Jones wrote:
Alp
You’ve written a helpful wiki page describing how to use Hadrian
https://gitlab.haskell.org/ghc/ghc/blob/master/hadrian/doc/make.md https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitlab.haskell.org%2Fghc%2Fghc%2Fblob%2Fmaster%2Fhadrian%2Fdoc%2Fmake.md&data=02%7C01%7Csimonpj%40microsoft.com%7C3025665679274a8486c808d676230b41%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636826290225890158&sdata=Hbk97%2B6Au9uC9YSWzDvLRDry25x9FxWxTVsgVVALONA%3D&reserved=0
Could you document where build-products live? I often look at .hi files.
Could you add
* How to do the equivalent of “sh validate” * When validating, how to do things like this:
GhcStage1HcOpts += -DDEBUG -O
GhcStage2HcOpts += -Wwarn -ticky
GhcLibHcOpts += -ticky -Wwarn
BUILD_PROF_LIBS = NO
SplitObjs = YES
HADDOCK_DOCS = NO
BUILD_SPHINX_HTML = NO
BUILD_SPHINX_PDF = NO
* After modifying the source code, how to make stage1 compiler (only). In ‘make’ it is
$ cd compiler; make 1
* After modifying the source code, build the stage2 compiler (only). In ‘make’ it is
$ cd compiler; make 2
Perhaps you say build –freeze1?
* In the testsuite, how to use the stage1 compiler
$ make stage=1 TEST=T2543
* In nofib, how to build one benchmark, with extra flags, perhaps even with the stage1 compiler
$ make stage=1 EXTRA_HC_OPTS=”-ticky -ddump-simpl -ddump-stg”
Thanks!
Simon
-- Alp Mestanogullari, Haskell Consultant Well-Typed LLP,https://www.well-typed.com/ https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.well-typed.com%2F&data=02%7C01%7Csimonpj%40microsoft.com%7C3025665679274a8486c808d676230b41%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636826290225900167&sdata=Oau6Enlm1yNMWM61U%2F8rUIwyTMQubwM3oEGXOQwNAS4%3D&reserved=0 Registered in England and Wales, OC335890 118 Wymering Mansions, Wymering Road, London, W9 2NF, England
-- Alp Mestanogullari, Haskell Consultant Well-Typed LLP,https://www.well-typed.com/
Registered in England and Wales, OC335890 118 Wymering Mansions, Wymering Road, London, W9 2NF, England
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
-- Alp Mestanogullari, Haskell Consultant Well-Typed LLP, https://www.well-typed.com/ Registered in England and Wales, OC335890 118 Wymering Mansions, Wymering Road, London, W9 2NF, England
participants (2)
-
Alp Mestanogullari
-
Simon Peyton Jones