Re: [GHC] #3372: Allow for multiple linker instances

#3372: Allow for multiple linker instances -------------------------------------+------------------------------------- Reporter: jcpetruzza | Owner: | JulianLeviston Type: feature request | Status: new Priority: low | Milestone: Component: Runtime System | Version: (Linker) | Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: 3658 | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by JulianLeviston): This is my plan so far: - add `DynLinker` `newtype` and use feed it into all the functions where we used to use the `v_PersistentLinkerState` global `IORef` state - rewrite `modifyPLS` and `modifyPLS_` to work with the passed-in `DynLinker` `IORef` value rather than the global - survey all the places where we've added `DynLinker` as an argument (in 1st *or* 2nd pos) extendLoadedPkgs - extendLinkEnv - deleteFromLinkEnv - getHValue - withExtendedLinkEnv - initDynLinker - reallyInitDynLinker - linkCmdLineLibs - linkExpr - linkDecls - linkModule - unload - linkPackages - - refactor all the surveyed call sites such that they're also passing now the DynLinker argument - rewrite initDynLinker as per wiki - rewrite withLinkerState as per wiki (this is just old modifyPLS, basically...) - rewrite readPLS to be passed DynLinker and refactor its sole call-site - rewrite modifyMbPLS_ so it works with DynLinker - try compiling and fix any errors - write a test -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/3372#comment:24 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC