Rename -frule-check to -drule-check and document
authorMatthew Pickering <matthewtpickering@gmail.com>
Mon, 15 Jan 2018 17:37:51 +0000 (12:37 -0500)
committerBen Gamari <ben@smart-cactus.org>
Mon, 15 Jan 2018 18:53:45 +0000 (13:53 -0500)
Reviewers: bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie, carter

Differential Revision: https://phabricator.haskell.org/D4256

compiler/main/DynFlags.hs
docs/users_guide/debugging.rst
testsuite/tests/driver/T9776.stderr
testsuite/tests/driver/all.T

index 4b95bfa..0c8222f 100644 (file)
@@ -3300,7 +3300,7 @@ dynamic_flags_deps = [
       (intSuffix (\n d -> d { liberateCaseThreshold = Just n }))
   , make_ord_flag defFlag "fno-liberate-case-threshold"
       (noArg (\d -> d { liberateCaseThreshold = Nothing }))
-  , make_ord_flag defFlag "frule-check"
+  , make_ord_flag defFlag "drule-check"
       (sepArg (\s d -> d { ruleCheck = Just s }))
   , make_ord_flag defFlag "freduction-depth"
       (intSuffix (\n d -> d { reductionDepth = treatZeroAsInf n }))
index efa6e28..3997919 100644 (file)
@@ -270,6 +270,19 @@ subexpression elimination pass.
     Dumps detailed information about all rules that fired in this
     module
 
+.. ghc-flag:: -drule-check=⟨str⟩
+    :shortdesc: Dump information about potential rule application
+    :type: dynamic
+
+    This flag is useful for debugging why a rule you expect to be firing isn't.
+
+    Rules are filtered by the user provided string, a rule is kept if a prefix
+    of its name matches the string.
+    The pass then checks whether any of these rules could apply to
+    the program but which didn't file for some reason. For example, specifying
+    ``-drule-check=SPEC`` will check whether there are any applications which
+    might be subject to a rule created by specialisation.
+
 .. ghc-flag:: -ddump-vect
     :shortdesc: Dump vectoriser input and output
     :type: dynamic
index 328a105..0281a2d 100644 (file)
@@ -1,2 +1,2 @@
-ghc-stage2: on the commandline: missing argument for flag: -frule-check
+ghc-stage2: on the commandline: missing argument for flag: -drule-check
 Usage: For basic information, try the `--help' option.
index a63513a..976a316 100644 (file)
@@ -214,7 +214,7 @@ test('write_interface_oneshot', [extra_files(['A011.hs'])], run_command,
 test('write_interface_make', [extra_files(['A011.hs'])], run_command,
      ['$MAKE -s --no-print-directory write_interface_make'])
 
-test('T9776', normal, compile_fail, ['-frule-check'])
+test('T9776', normal, compile_fail, ['-drule-check'])
 
 test('T9938', [], run_command, ['$MAKE -s --no-print-directory T9938'])