
#9266: getDirectoryContents blow its stack in a huge directory -------------------------------------+------------------------------------- Reporter: joeyhess | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: | Version: 7.8.2 libraries/directory | Keywords: Resolution: | Architecture: Unknown/Multiple Operating System: Linux | Difficulty: Easy (less than 1 Type of failure: None/Unknown | hour) Test Case: | Blocked By: Blocking: | Related Tickets: -------------------------------------+------------------------------------- Comment (by joeyhess): I've gotten it to work with unsafePerformIO. I can provide a patch, but I don't think you'l find this approach acceptable. The problem is that any errors would be deferred until the list is consumed, ie the readFile problem all over again. With that said, it does work; the test program now uses only 1776kb, and a variant that gets the length of the list behaves similarly well. I wonder if it would be better to add a overDirectoryContents :: FilePath -> (FilePath -> IO ()) -> IO () or something like that? This would work in my particular use case, at least. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9266#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler