snowleopard / hadrian

Hadrian: a new build system for the Glasgow Haskell Compiler. Now merged into the GHC tree!
https://gitlab.haskell.org/ghc/ghc/tree/master/hadrian
MIT License
208 stars 39 forks source link

build more profiling ways by default, fixes #681 #682

Closed alpmestan closed 5 years ago

snowleopard commented 5 years ago

Thanks! Did this work on your machine? I don't think we test profiling way on CI.

Also, what about logging or dynamic related RTS ways? Are we doing these as part of #681 too?

alpmestan commented 5 years ago

@snowleopard #681 is only about missing profiling-enabled ways for now, and this change really just mirrors what @osa1 implemented in https://phabricator.haskell.org/D5140.

I however realized, after running a build, that the two new ways added by Ömer are not generated in our case. This is quite likely because they're not advertised in rts.cabal.in. I'm now trying this patch:

diff --git a/rts/rts.cabal.in b/rts/rts.cabal.in
index d509953a1b..e09c0548f7 100644
--- a/rts/rts.cabal.in
+++ b/rts/rts.cabal.in
     if flag(profiling)
-      extra-library-flavours: _p _thr_p
+      extra-library-flavours: _p _thr_p _debug_p _thr_debug_p

Note that while we didn't have profiling in the list, we quite likely were already generating the _p way of the RTS library, because it's advertised there.

snowleopard commented 5 years ago

@alpmestan Sure, let's limit #681 to just the missing profiling-enabled ways.

I guess we can merge this PR if it passes CI (it should), but keep #681 until your rts.cabal.in patch lands?

alpmestan commented 5 years ago

I guess we can merge this PR if it passes CI (it should), but keep #681 until your rts.cabal.in patch lands?

Sounds good to me. I have a build running, with the patch, will let you know how it goes too.

alpmestan commented 5 years ago

It seems to work!

$ ls _tmp/stage1/lib/x86_64-linux-ghc-8.7.20180910/rts-1.0/libHSrts*
_tmp/stage1/lib/x86_64-linux-ghc-8.7.20180910/rts-1.0/libHSrts-1.0.a
_tmp/stage1/lib/x86_64-linux-ghc-8.7.20180910/rts-1.0/libHSrts-1.0_debug.a
_tmp/stage1/lib/x86_64-linux-ghc-8.7.20180910/rts-1.0/libHSrts-1.0_debug_p.a
_tmp/stage1/lib/x86_64-linux-ghc-8.7.20180910/rts-1.0/libHSrts-1.0_l.a
_tmp/stage1/lib/x86_64-linux-ghc-8.7.20180910/rts-1.0/libHSrts-1.0_p.a
_tmp/stage1/lib/x86_64-linux-ghc-8.7.20180910/rts-1.0/libHSrts-1.0_thr.a
_tmp/stage1/lib/x86_64-linux-ghc-8.7.20180910/rts-1.0/libHSrts-1.0_thr_debug.a
_tmp/stage1/lib/x86_64-linux-ghc-8.7.20180910/rts-1.0/libHSrts-1.0_thr_debug_p.a
_tmp/stage1/lib/x86_64-linux-ghc-8.7.20180910/rts-1.0/libHSrts-1.0_thr_l.a
_tmp/stage1/lib/x86_64-linux-ghc-8.7.20180910/rts-1.0/libHSrts-1.0_thr_p.a
snowleopard commented 5 years ago

@alpmestan Great! Merged.

alpmestan commented 5 years ago

My accompanying GHC patch is up on Phab: https://phabricator.haskell.org/D5142