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 <alp@well-typed.com>
Sent: 09 January 2019 11:10
To: Simon Peyton Jones <simonpj@microsoft.com>
Cc: ghc-devs <ghc-devs@haskell.org>
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

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
-- 
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