[Haskell-cafe] Re: A GHC error message puzzle
Wei Hu
wei.hoo at gmail.com
Thu Aug 12 16:25:21 EDT 2010
Anyone care to explain why? I also tested a slightly changed program
pasted below, and am very confused.
> main = do
> -- This call doesn't terminate, why?
> print $ nonTermination "a"
> -- Comment the above line to test the rest of the code
> -- RTS detects the loop and bails out
> print $ process "abc"
> -- Comment the above line to test the rest of the code
> inp <- readFile "input"
> -- I'm guessing (process inp) throws an exception,
> -- and the handler closes all files, making a second close fail?
> writeFile "output" $ process inp
> process :: String -> String
> process xs = blackhole where blackhole = tail blackhole
> nonTermination :: String -> String
> nonTermination _ = blackhole where blackhole = blackhole
On Thu, Aug 12, 2010 at 3:38 PM, Simon Marlow <marlowsd at gmail.com> wrote:
> On 12/08/10 15:09, Yitzchak Gale wrote:
>>
>> The file "error_puzzle.hs" begins like this:
>>
>> main = do
>> inp<- readFile "input"
>> writeFile "output" $ process inp
>>
>> process :: String -> String
>>
>> When compiled with GHC 6.12.3 and run, it
>> gives the following result:
>>
>> $ ./error_puzzle
>> error_puzzle: output: hClose: illegal operation (handle is finalized)
>
> process xs = blackhole where blackhole = tail blackhole
>
> Cheers,
> Simon
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
More information about the Haskell-Cafe
mailing list