build system

Thomas Miedema thomasmiedema at gmail.com
Tue Jul 21 21:32:55 UTC 2015


What Reid said is correct. I just changed validate back to use V=1 though,
since it seems like a better default. From
https://ghc.haskell.org/trac/ghc/wiki/Design/BuildSystem:

   "The build system should clearly report what it's doing (and sometimes
why), without being too verbose. It should emit actual command lines as
much as possible, so that they can be inspected and cut & pasted. "

You can run `./validate --quiet` to get the previous behavior.

To make things sequential: you can use `CPUS=1 ./validate`.



On Tue, Jul 21, 2015 at 11:16 PM, Reid Barton <rwbarton at gmail.com> wrote:

> On Tue, Jul 21, 2015 at 4:21 PM, Simon Peyton Jones <simonpj at microsoft.com
> > wrote:
>
>>  Friends
>>
>> With the new build system I get this kind of output
>>
>>   HC [stage 1] compiler/stage2/build/SPARC/AddrMode.o
>>
>>   HC [stage 1] compiler/stage2/build/CmmContFlowOpt.o
>>
>>   HC [stage 1] compiler/stage2/build/CmmImplementSwitchPlans.o
>>
>>   AR
>> libraries/Cabal/Cabal/dist-install/build/libHSCabal-1.23.0.0-752LrSyTT7YLYxOzpNXfM5.a
>>
>> C:\fp\HP-2014-2.0.0.0\mingw\bin\ar.exe: creating
>> libraries/Cabal/Cabal/dist-install/build/libHSCabal-1.23.0.0-752LrSyTT7YLYxOzpNXfM5.a
>>
>>   LD
>> libraries/Cabal/Cabal/dist-install/build/HSCabal-1.23.0.0-752LrSyTT7YLYxOzpNXfM5.o
>>
>>   HC [stage 1] utils/ghc-cabal/dist-install/build/Main.o
>>
>> *WARNING*: file compiler\specialise\Specialise.hs, line 724
>>
> I assume this is when you run validate?
>
>>  But I have no idea which module caused the WARNING, nor do I have a
>> command-line to copy/paste to reproduce it.  (With the old module-at-a-time
>> system I could copy/paste the command line for the specific module.)
>>
>> Is there a way to
>>
>> ·        make things sequential so I can tell which warnings from which
>> module
>>
> make -j1, which is make's default, but validate invokes make with -j2 or
> higher (depending on how many CPUs it thinks your system has).
>
>> ·        get a command line to copy/paste to compile that module?
>>
> validate sets the GHC build system variable V=0 in mk/are-validating.mk.
> You can override it from the make command line with make V=1.
>
> So, you can run "make V=1" to restart the build serially and with the
> command to build each file displayed. Note that serial make may build
> modules in a different order than parallel make, so it may take a while for
> make to get around to building the module that failed.
>
> Regards,
> Reid Barton
>
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20150721/b26168ea/attachment.html>


More information about the ghc-devs mailing list