Ticket #457 (new bug: None)
Strictness problem
| Reported by: | nilsanders | Owned by: | |
|---|---|---|---|
| Priority: | normal | Milestone: | _|_ |
| Component: | Compiler | Version: | 6.4.1 |
| Keywords: | Cc: | michal.terepeta@… | |
| Operating System: | Unknown/Multiple | Architecture: | Unknown/Multiple |
| Type of failure: | Incorrect result at runtime | Difficulty: | Unknown |
| Test Case: | Blocked By: | ||
| Blocking: | Related Tickets: |
Description (last modified by simonmar) (diff)
As requested, this is a resubmission (and update) of a previously reported bug, to get it into the bug tracker. The following program should output something involving Correct: > module Main where > f x = case x of > x@True -> \y -> x && y > x@False -> \y -> x && y > main = putStrLn $ f (error "Correct") `seq` "Error" However, whether it does so is a non-trivial function of the GHC version and optimisation settings: GHC version -O2? Correct? ------------------------------ 4.08.1 No Yes 4.08.1 Yes No 5.04.2 No No 5.04.2 Yes Yes 6.0.1 _ No 6.2.2 _ No 6.4 _ No 6.4.1.20050820 _ No All tests were run on a Solaris system. Different fs give different behaviour, at least for 6.0.1. Try e.g. > f x = case x of > True -> id > False -> id
Change History
Note: See
TracTickets for help on using
tickets.
