[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