[GHC] #12870: Allow completely disabling +RTS options parsing

GHC ghc-devs at haskell.org
Thu Mar 8 13:04:15 UTC 2018


#12870: Allow completely disabling +RTS options parsing
-------------------------------------+-------------------------------------
        Reporter:  nh2               |                Owner:  AndreasK
            Type:  feature request   |               Status:  closed
        Priority:  normal            |            Milestone:  8.4.1
       Component:  Compiler          |              Version:  8.0.1
      Resolution:  fixed             |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):  Phab:D3740
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by alpmestan):

 I'm seeing quite a few failures related to the `T12870*` tests in a run of
 `./validate --slow` with master from yesterday.

 First, _all_ those tests fail with the `ghci` way, because `ghci` doesn't
 see that those modules are declared as `module Main where ...` and have a
 `main` function, and reports an error about this.

 {{{
 =====> T12870a(ghci) 1 of 8 [0, 0, 0]
 cd "./rts/flags/T12870a.run" && "/home/alp/ghc/inplace/test   spaces/ghc-
 stage2" T12870 -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-
 warn-missed-specialisations -fshow-warning-groups -fdiagnostics-
 color=never -fno-diagnostics-show-caret -dno-debug-output  --interactive
 -v0 -ignore-dot-ghci -fno-ghci-history +RTS -I0.1 -RTS -rtsopts -main-is
 T12870< T12870a.genscript
 Actual stderr output differs from expected:
 diff -uw "/dev/null"
 "./rts/flags/T12870a.run/T12870a.run.stderr.normalised"
 --- /dev/null   2018-03-07 13:03:27.344000000 +0100
 +++ ./rts/flags/T12870a.run/T12870a.run.stderr.normalised       2018-03-08
 13:56:21.487965000 +0100
 @@ -0,0 +1,4 @@
 +
 +T12870a:6:30:
 +    Not in scope: ‘Main.main’
 +    No module named ‘Main’ is imported.
 *** unexpected failure for T12870a(ghci)
 =====> T12870b(ghci) 2 of 8 [0, 1, 0]
 cd "./rts/flags/T12870b.run" && "/home/alp/ghc/inplace/test   spaces/ghc-
 stage2" T12870 -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-
 warn-missed-specialisations -fshow-warning-groups -fdiagnostics-
 color=never -fno-diagnostics-show-caret -dno-debug-output  --interactive
 -v0 -ignore-dot-ghci -fno-ghci-history +RTS -I0.1 -RTS -rtsopts=none
 -main-is T12870< T12870b.genscript
 Wrong exit code for T12870b(ghci) (expected 1 , actual 0 )
 Stderr ( T12870b ):
 T12870b:6:30: error:
     Not in scope: ‘Main.main’
     No module named ‘Main’ is imported.
 *** unexpected failure for T12870b(ghci)
 =====> T12870c(ghci) 3 of 8 [0, 2, 0]
 cd "./rts/flags/T12870c.run" && "/home/alp/ghc/inplace/test   spaces/ghc-
 stage2" T12870 -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-
 warn-missed-specialisations -fshow-warning-groups -fdiagnostics-
 color=never -fno-diagnostics-show-caret -dno-debug-output  --interactive
 -v0 -ignore-dot-ghci -fno-ghci-history +RTS -I0.1 -RTS -rtsopts=some
 -main-is T12870< T12870c.genscript
 Wrong exit code for T12870c(ghci) (expected 1 , actual 0 )
 Stderr ( T12870c ):
 T12870c:6:30: error:
     Not in scope: ‘Main.main’
     No module named ‘Main’ is imported.
 *** unexpected failure for T12870c(ghci)
 =====> T12870d(ghci) 4 of 8 [0, 3, 0]
 cd "./rts/flags/T12870d.run" && "/home/alp/ghc/inplace/test   spaces/ghc-
 stage2" T12870 -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-
 warn-missed-specialisations -fshow-warning-groups -fdiagnostics-
 color=never -fno-diagnostics-show-caret -dno-debug-output  --interactive
 -v0 -ignore-dot-ghci -fno-ghci-history +RTS -I0.1 -RTS -main-is T12870<
 T12870d.genscript
 Actual stderr output differs from expected:
 diff -uw "/dev/null"
 "./rts/flags/T12870d.run/T12870d.run.stderr.normalised"
 --- /dev/null   2018-03-07 13:03:27.344000000 +0100
 +++ ./rts/flags/T12870d.run/T12870d.run.stderr.normalised       2018-03-08
 13:56:22.091965000 +0100
 @@ -0,0 +1,4 @@
 +
 +T12870d:6:30:
 +    Not in scope: ‘Main.main’
 +    No module named ‘Main’ is imported.
 *** unexpected failure for T12870d(ghci)
 =====> T12870e(ghci) 5 of 8 [0, 4, 0]
 cd "./rts/flags/T12870e.run" && "/home/alp/ghc/inplace/test   spaces/ghc-
 stage2" T12870 -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-
 warn-missed-specialisations -fshow-warning-groups -fdiagnostics-
 color=never -fno-diagnostics-show-caret -dno-debug-output  --interactive
 -v0 -ignore-dot-ghci -fno-ghci-history +RTS -I0.1 -RTS -rtsopts=ignore
 -main-is T12870< T12870e.genscript
 Actual stderr output differs from expected:
 diff -uw "/dev/null"
 "./rts/flags/T12870e.run/T12870e.run.stderr.normalised"
 --- /dev/null   2018-03-07 13:03:27.344000000 +0100
 +++ ./rts/flags/T12870e.run/T12870e.run.stderr.normalised       2018-03-08
 13:56:22.307965000 +0100
 @@ -0,0 +1,4 @@
 +
 +T12870e:6:30:
 +    Not in scope: ‘Main.main’
 +    No module named ‘Main’ is imported.
 *** unexpected failure for T12870e(ghci)
 =====> T12870f(ghci) 6 of 8 [0, 5, 0]
 cd "./rts/flags/T12870f.run" && "/home/alp/ghc/inplace/test   spaces/ghc-
 stage2" T12870 -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-
 warn-missed-specialisations -fshow-warning-groups -fdiagnostics-
 color=never -fno-diagnostics-show-caret -dno-debug-output  --interactive
 -v0 -ignore-dot-ghci -fno-ghci-history +RTS -I0.1 -RTS -rtsopts=ignoreAll
 -main-is T12870< T12870f.genscript
 Actual stderr output differs from expected:
 diff -uw "/dev/null"
 "./rts/flags/T12870f.run/T12870f.run.stderr.normalised"
 --- /dev/null   2018-03-07 13:03:27.344000000 +0100
 +++ ./rts/flags/T12870f.run/T12870f.run.stderr.normalised       2018-03-08
 13:56:22.547965000 +0100
 @@ -0,0 +1,4 @@
 +
 +T12870f:6:30:
 +    Not in scope: ‘Main.main’
 +    No module named ‘Main’ is imported.
 *** unexpected failure for T12870f(ghci)
 =====> T12870g(ghci) 7 of 8 [0, 6, 0]
 cd "./rts/flags/T12870g.run" && GHCRTS=-G7  "/home/alp/ghc/inplace/test
 spaces/ghc-stage2" T12870g -dcore-lint -dcmm-lint -no-user-package-db
 -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups
 -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output
 --interactive -v0 -ignore-dot-ghci -fno-ghci-history +RTS -I0.1 -RTS
 -rtsopts -main-is T12870g -with-rtsopts="-G3"< T12870g.genscript
 Actual stderr output differs from expected:
 diff -uw "/dev/null"
 "./rts/flags/T12870g.run/T12870g.run.stderr.normalised"
 --- /dev/null   2018-03-07 13:03:27.344000000 +0100
 +++ ./rts/flags/T12870g.run/T12870g.run.stderr.normalised       2018-03-08
 13:56:22.799965000 +0100
 @@ -0,0 +1,4 @@
 +
 +T12870g:6:30:
 +    Not in scope: ‘Main.main’
 +    No module named ‘Main’ is imported.
 *** unexpected failure for T12870g(ghci)
 =====> T12870h(ghci) 8 of 8 [0, 7, 0]
 cd "./rts/flags/T12870h.run" && GHCRTS=-G7  "/home/alp/ghc/inplace/test
 spaces/ghc-stage2" T12870g -dcore-lint -dcmm-lint -no-user-package-db
 -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups
 -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output
 --interactive -v0 -ignore-dot-ghci -fno-ghci-history +RTS -I0.1 -RTS
 -rtsopts=ignoreAll -main-is T12870g -with-rtsopts="-G3"< T12870h.genscript
 Actual stderr output differs from expected:
 diff -uw "/dev/null"
 "./rts/flags/T12870h.run/T12870h.run.stderr.normalised"
 --- /dev/null   2018-03-07 13:03:27.344000000 +0100
 +++ ./rts/flags/T12870h.run/T12870h.run.stderr.normalised       2018-03-08
 13:56:23.031965000 +0100
 @@ -0,0 +1,4 @@
 +
 +T12870h:6:30:
 +    Not in scope: ‘Main.main’
 +    No module named ‘Main’ is imported.
 *** unexpected failure for T12870h(ghci)
 }}}

 I also see failures with `threaded2`, because of additional RTS options
 passed to all tests executed in the `threaded2` way, I suppose:

 {{{
 =====> T12870e(threaded2) 1 of 2 [0, 0, 0]
   cd "./rts/flags/T12870e.run" &&  "/home/alp/ghc/inplace/test   spaces
 /ghc-stage2" --make -o T12870e T12870 -dcore-lint -dcmm-lint -no-user-
 package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups
 -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output
 -O -threaded -eventlog -rtsopts=ignore -main-is T12870
   cd "./rts/flags/T12870e.run" && ./T12870e +RTS -N2 -ls -RTS +RTS -G2
 -RTS arg1 --RTS +RTS arg2
   Actual stdout output differs from expected:
   diff -uw "./rts/flags/T12870e.run/T12870e.stdout.normalised"
 "./rts/flags/T12870e.run/T12870e.run.stdout.normalised"
   --- ./rts/flags/T12870e.run/T12870e.stdout.normalised 2018-03-08
 13:37:41.099965000 +0100
   +++ ./rts/flags/T12870e.run/T12870e.run.stdout.normalised     2018-03-08
 13:37:41.099965000 +0100
   @@ -1 +1 @@
   -["+RTS","-G2","-RTS","arg1","--RTS","+RTS","arg2"]
   +["+RTS","-N2","-ls","-RTS","+RTS","-G2","-RTS","arg1","--
 RTS","+RTS","arg2"]
   *** unexpected failure for T12870e(threaded2)
   =====> T12870f(threaded2) 2 of 2 [0, 1, 0]
   cd "./rts/flags/T12870f.run" &&  "/home/alp/ghc/inplace/test   spaces
 /ghc-stage2" --make -o T12870f T12870 -dcore-lint -dcmm-lint -no-user-
 package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups
 -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output
 -O -threaded -eventlog -rtsopts=ignoreAll -main-is T12870
   cd "./rts/flags/T12870f.run" && ./T12870f +RTS -N2 -ls -RTS +RTS -G2
 -RTS arg1 --RTS +RTS arg2
   Actual stdout output differs from expected:
   diff -uw "./rts/flags/T12870f.run/T12870f.stdout.normalised"
 "./rts/flags/T12870f.run/T12870f.run.stdout.normalised"
   --- ./rts/flags/T12870f.run/T12870f.stdout.normalised 2018-03-08
 13:37:41.671965000 +0100
   +++ ./rts/flags/T12870f.run/T12870f.run.stdout.normalised     2018-03-08
 13:37:41.671965000 +0100
   @@ -1 +1 @@
   -["+RTS","-G2","-RTS","arg1","--RTS","+RTS","arg2"]
   +["+RTS","-N2","-ls","-RTS","+RTS","-G2","-RTS","arg1","--
 RTS","+RTS","arg2"]
   *** unexpected failure for T12870f(threaded2)
 }}}

 I'm also not sure what `-rtsopts=ignoreAll` is about, I don't see anything
 being ignored, only some more options being given to the program and
 reported. This makes it hard to expect the same output from a test
 executed under different ways.

-- 
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12870#comment:8>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list