Bugs item #1209152, was opened at 2005-05-26 13:39
Message generated for change (Comment added) made by simonmar
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: Closed
>Resolution: Fixed
Priority: 5
Submitted By: C Maeder (c_maeder)
>Assigned to: Simon Marlow (simonmar)
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.
[EMAIL PROTECTED] -> uname -a
Linux jupiter 2.6.8-24.14-smp #1 SMP Tue Mar 29
09:27:43 UTC 2005 i686
i686 i386GNU/Linux
[EMAIL PROTECTED] -> gcc --version
gcc (GCC) 3.3.4 (pre 3.3.5 20040809)
Copyright (C) 2003 Free Software Foundation, Inc.
[EMAIL PROTECTED] -> ghc --version
The Glorious Glasgow Haskell Compilation System,
version 6.4.1.20050517
[EMAIL PROTECTED] -> ghc --make trans.hs -o trans -no-recomp
Chasing modules from: trans.hs
Compiling Main ( trans.hs, trans.o )
Linking ...
[EMAIL PROTECTED] -> date
Fr Mai 20 10:27:00 CEST 2005
[EMAIL PROTECTED] -> time ./trans Map.hs Map.hs Map.hs
Map.hs Map.hs Map.hs
real0m20.732s
user0m20.298s
sys 0m0.031s
[EMAIL PROTECTED] -> 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
[EMAIL PROTECTED] -> time ./trans Map.hs Map.hs Map.hs
Map.hs Map.hs Map.hs
Map.hs
trans: interrupted
real4m29.816s
user4m5.554s
sys 0m24.120s
[EMAIL PROTECTED] -> 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 Marlow (simonmar)
Date: 2005-06-17 15:49
Message:
Logged In: YES
user_id=48280
Very hard bug to reproduce, but eventually tracked down and
now fixed. Thanks!
--
Comment By: Simon Peyton Jones (simonpj)
Date: 2005-06-10 16:11
Message:
Logged In: YES
user_id=50165
OK, we can reproduce it now. It only happens on the
*current* stable branch, not on the released 6.4.
We'll look at it.
--
Comment By: C Maeder (c_maeder)
Date: 2005-06-10 15:12
Message:
Logged In: YES
user_id=1285667
The error shows up even more dramatic under solaris and on a
mac(!) with Wolfgang's binary:
[EMAIL PROTECTED] -> time ./trans Map.hs
real0m11.346s
user0m9.250s
sys 0m0.010s
[EMAIL PROTECTED] -> time ./trans Map.hs Map.hs
^Ctrans: interrupted
real4m41.918s
user3m25.610s
sys 0m7.900s
[EMAIL PROTECTED] -> ghc --version
The Glorious Glasgow Haskell Compilation System, version 6.4.1
[EMAIL PROTECTED] -> uname -a
SunOS leo 5.8 Generic_117350-20 sun4u sparc SUNW,Sun-Fire-280R
[EMAIL PROTECTED]:~/haskell> time ./trans Map.hs
^Ctrans: interrupted
real4m58.311s
user3m59.070s
sys 0m38.850s
[EMAIL PROTECTED]:~/haskell> uname -a
Darwin isylvie.informatik.uni-bremen.de 7.8.0 Darwin Kernel
Version 7.8.0: Wed Dec 22 14:26:17 PST 2004;
root:xnu/xnu-517.11.1.obj~1/RELEASE_PPC Power Macintoshpowerpc
[EMAIL PROTECTED]:~/haskell> ghc --version
The Glorious Glasgow Haskell Compilation System, version 6.4
--
Comment By: C Maeder (c_maeder)
Date: 2005-06-10 14:29
Message:
Logged In: YES
user_id=1285667
I have no problems to reproduce the error on two of our
linux machines. Can someelse also try to reproduce this
behaviour?
Christian
[EMAIL PROTECTED]:~/haskell/examples> time ./trans Map.hs Map.hs
Map.hs Map.hs Map.hs Map.hs Map.hs
real0m23.542s
user0m22.954s
sys 0m0.118s
[EMAIL PROTECTED]:~/haskell/examples> set | less
[EMAIL PROTECTED]:~/haskell/examples> time ./trans Map.hs Map.hs
Map.hs Map.hs Map.hs Map.