[GHC] #7411: Exceptions are optimized away in certain situations
GHC
ghc-devs at haskell.org
Tue Jun 19 07:58:37 UTC 2018
#7411: Exceptions are optimized away in certain situations
-------------------------------------+-------------------------------------
Reporter: SimonHengel | Owner: tdammers
Type: bug | Status: new
Priority: high | Milestone: 8.8.1
Component: Compiler | Version: 7.6.1
Resolution: | Keywords: seq, deepseq,
| evaluate, exceptions
Operating System: Linux | Architecture: x86_64
| (amd64)
Type of failure: Incorrect result | Test Case:
at runtime | simplCore/should_fail/T7411
Blocked By: | Blocking:
Related Tickets: #5129 #15225 | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by tdammers):
Did 4 full runs of compiling GHC from scratch and then compiling and
running nofib, with different configurations. Here's what happened.
1. "vanilla": compile everything normally (the `prof` build that comes
with GHC). Everything works as expected.
2. "nsh": compile everything with `-fno-state-hack` (GHC itself,
libraries, nofib). Everything works as expected.
3. "stage1": compile GHC normally, nofib with `-fno-state-hack`, but use
stage1 compiler instead of stage2. Everything works as expected.
4. "nofib-nsh": compile GHC normally, nofib with `-fno-state-hack`. GHC
segfaults while compiling `Main.hs` from the bernouilli program (which
simply happens to be the first one it encounters). Despite passing
`-dcore-lint`, I get no linter output.
Here's the log:
{{{
------------------------------------------------------------------------
== Recursively making `all' in runstdtest nofib-analyse imaginary spectral
real shootout ...
PWD = /home/tobias/well-typed/devel/ghc/HEAD/nofib
------------------------------------------------------------------------
------------------------------------------------------------------------
== make all ;
in /home/tobias/well-typed/devel/ghc/HEAD/nofib/runstdtest
------------------------------------------------------------------------
rm -f -f runstdtest
echo '#!/usr/bin/perl' >> runstdtest
echo '$RM = "rm -f";' >> runstdtest
echo '$CONTEXT_DIFF = "diff -U 1";' >> runstdtest
cat runstdtest.prl >> runstdtest
chmod +x runstdtest
Finished making all in runstdtest: 0
------------------------------------------------------------------------
== make all ;
in /home/tobias/well-typed/devel/ghc/HEAD/nofib/nofib-analyse
------------------------------------------------------------------------
make[1]: Nothing to be done for 'all'.
Finished making all in nofib-analyse: 0
------------------------------------------------------------------------
== make all ;
in /home/tobias/well-typed/devel/ghc/HEAD/nofib/imaginary
------------------------------------------------------------------------
------------------------------------------------------------------------
== Recursively making `all' in bernouilli digits-of-e1 digits-of-e2 exp3_8
gen_regexps integrate paraffins primes queens rfib tak wheel-sieve1 wheel-
sieve2 x2n1 kahan ...
PWD = /home/tobias/well-typed/devel/ghc/HEAD/nofib/imaginary
------------------------------------------------------------------------
------------------------------------------------------------------------
== make all --no-print-directory;
in /home/tobias/well-typed/devel/ghc/HEAD/nofib/imaginary/bernouilli
------------------------------------------------------------------------
HC = /home/tobias/well-typed/devel/ghc/HEAD/inplace/bin/ghc-stage2
HC_OPTS = -O2 -Rghc-timing -H32m -hisuf hi -fno-state-hack -O2 -dcore-lint
-rtsopts
RUNTEST_OPTS = -ghc-timing
==nofib== bernouilli: time to compile Main follows...
/home/tobias/well-typed/devel/ghc/HEAD/inplace/bin/ghc-stage2 -O2 -Rghc-
timing -H32m -hisuf hi -fno-state-hack -O2 -dcore-lint -rtsopts -c Main.hs
-o Main.o
../../mk/suffix.mk:23: recipe for target 'Main.o' failed
make[2]: *** [Main.o] Segmentation fault (core dumped)
Failed making all in bernouilli: 1
../mk/ghc-recurse.mk:65: recipe for target 'all' failed
make[1]: *** [all] Error 1
Failed making all in imaginary: 1
mk/ghc-recurse.mk:65: recipe for target 'all' failed
make: *** [all] Error 1
}}}
Unfortunately I hadn't done a run with GHC stage1 compiled with `-fno-
state-hack`; I'll do that next.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/7411#comment:41>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list