[ ghc-Bugs-1209152 ] non-termination without optimization
SourceForge.net
noreply at sourceforge.net
Fri Jun 10 09:32:05 EDT 2005
Bugs item #1209152, was opened at 2005-05-26 13:39
Message generated for change (Comment added) made by simonpj
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=108032&aid=1209152&group_id=8032
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Compiler
Group: 6.4
Status: Open
Resolution: None
Priority: 5
Submitted By: C Maeder (c_maeder)
Assigned to: Nobody/Anonymous (nobody)
Summary: non-termination without optimization
Initial Comment:
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 at 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 at jupiter -> gcc --version
gcc (GCC) 3.3.4 (pre 3.3.5 20040809)
Copyright (C) 2003 Free Software Foundation, Inc.
maeder at jupiter -> ghc --version
The Glorious Glasgow Haskell Compilation System,
version 6.4.1.20050517
maeder at jupiter -> ghc --make trans.hs -o trans -no-recomp
Chasing modules from: trans.hs
Compiling Main ( trans.hs, trans.o )
Linking ...
maeder at jupiter -> date
Fr Mai 20 10:27:00 CEST 2005
maeder at 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 at 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 at 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 at 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
----------------------------------------------------------------------
>Comment By: Simon Peyton Jones (simonpj)
Date: 2005-06-10 13:32
Message:
Logged In: YES
user_id=50165
Christian,
I tried this, but I couldn't get the behaviour you observed.
Certainly, the program can be very slow without -O, becuase
iside the inner (per-input-character) loop, you are rebuilding
the character translation map. But it still works fine for me,
no matter how many copies of Map I give it.
I'm using the HEAD.
I'm not sure how to proceed. Does this happen with the
released GHC 6.4?
Simon
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=108032&aid=1209152&group_id=8032
More information about the Glasgow-haskell-bugs
mailing list