Skip to content

non-termination without optimization

I've found a (relatively) small example that does not
terminate if
translated unoptimized under linux with ghc-6.4 or
ghc-6.4.1, although it should (and does with ghc-6.2.2).

I compile with:

ghc --make trans.hs -o trans -no-recomp

and let the program process the file "Map.hs" (that is
merely used as
input data) several times. While "./trans" sometimes
succeeds to
translate Map.hs a couple of times it fails to
translate it more times
and leaves a half translated file Map.hs.trans.
Unfortunately the exact
amount of data that needs to be processed varies in
order to tickle the
bug. (7 times Map.hs below, up to 11 times in other cases).

The program terminates as expected if I use my
(included) Map.hs instead of Data.Map, or if I declare
the character map to be a separate
constant, or if I compile with optimization.

If compiled unoptimized with profiling it also does not
terminate.

maeder@jupiter -> uname -a
Linux jupiter 2.6.8-24.14-smp #1 SMP Tue Mar 29
09:27:43 UTC 2005 i686
i686 i386GNU/Linux

maeder@jupiter -> gcc --version
gcc (GCC) 3.3.4 (pre 3.3.5 20040809)
Copyright (C) 2003 Free Software Foundation, Inc.

maeder@jupiter -> ghc --version
The Glorious Glasgow Haskell Compilation System,
version 6.4.1.20050517

maeder@jupiter -> ghc --make trans.hs -o trans -no-recomp
Chasing modules from: trans.hs
Compiling Main             ( trans.hs, trans.o )
Linking ...

maeder@jupiter -> date
Fr Mai 20 10:27:00 CEST 2005

maeder@jupiter -> time ./trans Map.hs Map.hs Map.hs
Map.hs Map.hs Map.hs

real    0m20.732s
user    0m20.298s
sys     0m0.031s

maeder@jupiter -> ll Map.*
-rw-r--r--  1 maeder wimi  57184 2005-05-20 09:31 Map.hs
-rw-r--r--  1 maeder wimi 207572 2005-05-20 10:27
Map.hs.trans

maeder@jupiter -> time ./trans Map.hs Map.hs Map.hs
Map.hs Map.hs Map.hs
Map.hs
trans: interrupted

real    4m29.816s
user    4m5.554s
sys     0m24.120s

maeder@jupiter -> ll Map.*
-rw-r--r--  1 maeder wimi 57184 2005-05-20 09:31 Map.hs
-rw-r--r--  1 maeder wimi 98304 2005-05-20 10:28
Map.hs.trans



Trac metadata
Trac field Value
Version 6.4
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution ResolvedFixed
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information