X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=docs%2Fusers_guide%2Fdebugging.xml;h=d6a520a4d9bb655bcbf0eb17b2ed83870823f0cf;hb=aedb94f5f220b5e442b23ecc445fd38c8d9b6ba0;hp=a325389d4681c5db89ae5ae42ddb6b276fbc156f;hpb=0065d5ab628975892cea1ec7303f968c3338cbe1;p=ghc-hetmet.git diff --git a/docs/users_guide/debugging.xml b/docs/users_guide/debugging.xml index a325389..d6a520a 100644 --- a/docs/users_guide/debugging.xml +++ b/docs/users_guide/debugging.xml @@ -60,6 +60,17 @@ + : + + + + Dump Template Haskell expressions that we splice in, + and what Haskell code the expression evaluates to. + + + + + : @@ -136,16 +147,6 @@ - : - - - - UsageSP inference pre-inf and output - - - - - : @@ -196,11 +197,11 @@ - : - + : + - output of “saturate” pass + output of core preparation pass @@ -216,16 +217,6 @@ - : - - - - unflattened Abstract C - - - - - : @@ -236,21 +227,21 @@ - : - + : + - same as what goes to the C compiler + Print the C-- code out. - : - + : + - native-code generator intermediate form + Dump the results of C-- to C-- optimising passes. @@ -289,25 +280,15 @@ - - - - - - + : + - Show the output of the intermediate Core-to-Core and - STG-to-STG passes, respectively. (Lots - of output!) So: when we're really desperate: - - -% ghc -noC -O -ddump-simpl -dverbose-simpl -dcore-lint Foo.hs - - + Show the output of each run of the simplifier. Used when even + doesn't cut it. - + : @@ -316,54 +297,43 @@ Show the output of each iteration of the simplifier (each run of the simplifier has a maximum - number of iterations, normally 4). Used when even - doesn't cut it. + number of iterations, normally 4). This outputs even more information + than . - - + + - Debugging output is in one of several - “styles.” Take the printing of types, for - example. In the “user” style (the default), the - compiler's internal ideas about types are presented in - Haskell source-level syntax, insofar as possible. In the - “debug” style (which is the default for - debugging output), the types are printed in with explicit - foralls, and variables have their unique-id attached (so you - can check for things that look the same but aren't). This - flag makes debugging output appear in the more verbose debug - style. + Dump statistics about how many of each kind of + transformation too place. If you add + you get more detailed + information. - - + + - In error messages, expressions are printed to a - certain “depth”, with subexpressions beyond the - depth replaced by ellipses. This flag sets the - depth. + Make the interface loader be *real* chatty about what it is + upto. - - + + - Dump statistics about how many of each kind of - transformation too place. If you add - you get more detailed - information. + Make the type checker be *real* chatty about what it is + upto. @@ -391,14 +361,107 @@ - - + + + + + + + + + Show the output of the intermediate Core-to-Core and + STG-to-STG passes, respectively. (Lots + of output!) So: when we're really desperate: + + +% ghc -noC -O -ddump-simpl -dverbose-simpl -dcore-lint Foo.hs + + + + + + + + + + + + Print out each pass name as it happens. + + + + + + + + + + Show statistics for the usage of fast strings by the + compiler. + + + + + + + + + + Debugging output is in one of several + “styles.” Take the printing of types, for + example. In the “user” style (the default), the + compiler's internal ideas about types are presented in + Haskell source-level syntax, insofar as possible. In the + “debug” style (which is the default for + debugging output), the types are printed in with explicit + foralls, and variables have their unique-id attached (so you + can check for things that look the same but aren't). This + flag makes debugging output appear in the more verbose debug + style. + + + + + + + + + + Suppress the printing of uniques in debugging output. This may make + the printout ambiguous (e.g. unclear where an occurrence of 'x' is bound), but + it makes the output of two compiler runs have many fewer gratuitous differences, + so you can realistically apply diff. Once diff + has shown you where to look, you can try again without + + + + + + + - Have the renamer report what imports does not - contribute. + In error messages, expressions are printed to a + certain “depth”, with subexpressions beyond the + depth replaced by ellipses. This flag sets the + depth. Its default value is 5. + + + + + + + + Suppress any unsolicited debugging output. When GHC + has been built with the DEBUG option it + occasionally emits debug output of interest to developers. + The extra output can confuse the testing framework and + cause bogus test failures, so this flag is provided to + turn it off. + + @@ -433,19 +496,14 @@ - : - + : + - Turn on checks around UsageSP inference - (). This verifies various simple - properties of the results of the inference, and also warns - if any identifier with a used-once annotation before the - inference has a used-many annotation afterwards; this could - indicate a non-worksafe transformation is being - applied. + Ditto for C-- level. + @@ -572,21 +630,9 @@ Main.skip2{-r1L6-} = of platform-specific code that needs to be written in order to get unregisterised compilation going is usually fairly small. - - - - : - - - - Compile via vanilla ANSI C only, turning off - platform-specific optimisations. NOTE: in order to use - , you need to have a set of libraries - (including the RTS) built for unregisterised compilation. - This amounts to building GHC with way "u" enabled. - - - + Unregisterised compilation cannot be selected at + compile-time; you have to build GHC with the appropriate options + set. Consult the GHC Building Guide for details.