Ticket #395 (closed bug: Fixed)
non-termination without optimization
Description
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
Attachments
Change History
Note: See
TracTickets for help on using
tickets.

