[ ghc-Bugs-604889 ] Optimizer introduces non-termination

2002-09-06 Thread noreply

Bugs item #604889, was opened at 2002-09-05 04:54
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detailatid=108032aid=604889group_id=8032

Category: Compiler
Group: 5.04
Status: Closed
Resolution: Fixed
Priority: 5
Submitted By: Henrik Nilsson (nhn)
Assigned to: Simon Marlow (simonmar)
Summary: Optimizer introduces non-termination

Initial Comment:
When compiled with GHC 5.04 and optimization turned on
(-O), AFRP's regression tests fail to terminate. When
compiled with -O0, everything works, except that
somewhat dubious C code seems to be generated (see
below).

I've included a version of the regression tests with
as much code as possible commented out, but you may
need the entire AFRP distribution to make progress on
this one. You can get it as part of the AFrob/AFRP
bundle at www.haskell.org/afrp.

In the regression tests, the following logical
conjunction is used to check if all tests succeeded:

allGood = {- arr_tr
   comp_tr
   -} first_tr
   second_tr
   laws_tr
   loop_tr {-
   looplaws_tr
   basicsf_tr
   evsrc_tr
   coc_tr
   switch_tr
   kswitch_tr
   rswitch_tr
   pswitch_tr
   rpswitch_tr
   wfg_tr
   accum_tr
   delay_tr
   der_tr
   loopPre_tr
   loopIntegral_tr
   react_tr
   embed_tr
   utils_tr
   task_tr
-}

With only the code for the tests first, second,
laws, and loop left, and consequently only the
corresponding four boolean test results left in the
above conjunction, the regression tests fail to
terminate when compiled with -O.

However, if I comment out ANY ONE (or more) of the
four boolean result flags from the conjunction above,
the remaining tests do terminate. Thus there does
not appear to be one single test that fails, but
somehow it is the combination of these four tests
that for some reason results in invalid optimizations.

Additionally, when I compile the main module
(testAFRPMain.hs) with no optimization (-O0), I get
the follwing warning:

ghc -c  -fglasgow-exts -O -package lang -package
concurrent -i/usr/local/lib/ghc/imports/arrow:../src
-O0 -o testAFRPMain.o testAFRPMain.hs
/tmp/ghc17120.hc:1150: warning: initialization discards
qualifiers from pointer target type

Again, I'm a bit surprised that C code is generated
here? I thought I was using the native code
generator? This is on a Linux x86 platform.

/Henrik

--
Henrik Nilsson
Yale University
[EMAIL PROTECTED]


--

Comment By: Simon Marlow (simonmar)
Date: 2002-09-06 12:53

Message:
Logged In: YES 
user_id=48280

This was caused by a bug in the garbage collector, which 
has now been fixed.  Thanks for the report.

--

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detailatid=108032aid=604889group_id=8032
___
Glasgow-haskell-bugs mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs



[ ghc-Bugs-604889 ] Optimizer introduces non-termination

2002-09-05 Thread noreply

Bugs item #604889, was opened at 2002-09-05 04:54
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detailatid=108032aid=604889group_id=8032

Category: Compiler
Group: 5.04
Status: Open
Resolution: None
Priority: 5
Submitted By: Henrik Nilsson (nhn)
Assigned to: Nobody/Anonymous (nobody)
Summary: Optimizer introduces non-termination

Initial Comment:
When compiled with GHC 5.04 and optimization turned on
(-O), AFRP's regression tests fail to terminate. When
compiled with -O0, everything works, except that
somewhat dubious C code seems to be generated (see
below).

I've included a version of the regression tests with
as much code as possible commented out, but you may
need the entire AFRP distribution to make progress on
this one. You can get it as part of the AFrob/AFRP
bundle at www.haskell.org/afrp.

In the regression tests, the following logical
conjunction is used to check if all tests succeeded:

allGood = {- arr_tr
   comp_tr
   -} first_tr
   second_tr
   laws_tr
   loop_tr {-
   looplaws_tr
   basicsf_tr
   evsrc_tr
   coc_tr
   switch_tr
   kswitch_tr
   rswitch_tr
   pswitch_tr
   rpswitch_tr
   wfg_tr
   accum_tr
   delay_tr
   der_tr
   loopPre_tr
   loopIntegral_tr
   react_tr
   embed_tr
   utils_tr
   task_tr
-}

With only the code for the tests first, second,
laws, and loop left, and consequently only the
corresponding four boolean test results left in the
above conjunction, the regression tests fail to
terminate when compiled with -O.

However, if I comment out ANY ONE (or more) of the
four boolean result flags from the conjunction above,
the remaining tests do terminate. Thus there does
not appear to be one single test that fails, but
somehow it is the combination of these four tests
that for some reason results in invalid optimizations.

Additionally, when I compile the main module
(testAFRPMain.hs) with no optimization (-O0), I get
the follwing warning:

ghc -c  -fglasgow-exts -O -package lang -package
concurrent -i/usr/local/lib/ghc/imports/arrow:../src
-O0 -o testAFRPMain.o testAFRPMain.hs
/tmp/ghc17120.hc:1150: warning: initialization discards
qualifiers from pointer target type

Again, I'm a bit surprised that C code is generated
here? I thought I was using the native code
generator? This is on a Linux x86 platform.

/Henrik

--
Henrik Nilsson
Yale University
[EMAIL PROTECTED]


--

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detailatid=108032aid=604889group_id=8032
___
Glasgow-haskell-bugs mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs