
Hi, Am Freitag, den 29.11.2013, 10:08 +0000 schrieb Simon Marlow:
Actually this isn't quite right. compiler_debugged() is true when GhcDebugged=YES in the build system, and GhcDebugged controls whether GHC is compiled with -debug or not.
That is, compiler_debugged() tells us whether the compiler was compiled with -debug, not -DDEBUG. The -debug flag links in the debug RTS and doesn't change allocation or heap residency, whereas -DDEBUG enables assertions in the compiler and *does* change allocation and heap residency.
It looks like we need another predicate to tell us whether GHC was compiled with -DDEBUG or not.
Would you mind backing out these changes in the meantime?
are you sure? compiler_debugged() is certainly true when I build ghc with GhcStage2HcOpts = -O0 -DDEBUG which yields ./inplace/bin/ghc-stage2 --info|grep 'Debug on' ,("Debug on","True") but ./inplace/bin/ghc-stage2 +RTS --info|grep -i debug is empty. The test runner sets the value testsuite/mk/ghc-config.hs: info <- readProcess ghc ["--info"] "" let fields = read info :: [(String,String)] getGhcFieldOrFail fields "GhcDebugged" "Debug on" which writes to testsuite/mk/ghcconfig_* which is then read by testsuite/mk/boilerplate.mk which is included everywhere including mk/test.mk which sets "-e ghc_debugged=$(GhcDebugged)" So it seems that it is simply the wiki documentation that is wrong here. (And judging from the git history, it has always been the case since it was introduced by Ian one year ago (888daa51a7d656bba5f39e16e6396ba9d4d29f4c). Greetings, Joachim -- Joachim “nomeata” Breitner mail@joachim-breitner.de • http://www.joachim-breitner.de/ Jabber: nomeata@joachim-breitner.de • GPG-Key: 0x4743206C Debian Developer: nomeata@debian.org