
#8291: unloadObj doesn't work, unloaded_objects list keeps growing in size ------------------------------------------------+-------------------------- Reporter: ezyang | Owner: Type: bug | simonmar Priority: highest | Status: Component: Runtime System | infoneeded Resolution: | Milestone: 7.8.1 Operating System: Unknown/Multiple | Version: 7.7 Type of failure: Incorrect result at runtime | Keywords: Test Case: linker_unload | Architecture: Blocking: | Unknown/Multiple | Difficulty: | Unknown | Blocked By: | Related Tickets: ------------------------------------------------+-------------------------- Comment (by ezyang): No, I don't think there's anything special. For good measure, I reproduced on my laptop. Anyway, I've tracked it down; recall that foreign export code produces an initializer (`compiler/deSugar/DsForeign.lhs`), which registers the foreign export in Test.hs as a stable pointer. Well, stable pointers constitute roots, so since the foreign export stable pointers are not getting cleaned up, it is retaining a reference to the object, preventing it from being freed. I don't know why the error is not triggering on your box. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8291#comment:4 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler