diff options
author | simonmar <unknown> | 2000-11-16 11:39:37 +0000 |
---|---|---|
committer | simonmar <unknown> | 2000-11-16 11:39:37 +0000 |
commit | 292c077de7dbe98eb44911648f16e243b40db2ac (patch) | |
tree | bede294fb08cdc88ca0ddba402b3e873602ea4d6 /ghc/compiler/main/DriverState.hs | |
parent | 8894fd8508fc5ac3b793187c323e4732a73b4a24 (diff) | |
download | haskell-292c077de7dbe98eb44911648f16e243b40db2ac.tar.gz |
[project @ 2000-11-16 11:39:36 by simonmar]
Current state of the interactive system; can load packages (in theory).
Diffstat (limited to 'ghc/compiler/main/DriverState.hs')
-rw-r--r-- | ghc/compiler/main/DriverState.hs | 45 |
1 files changed, 21 insertions, 24 deletions
diff --git a/ghc/compiler/main/DriverState.hs b/ghc/compiler/main/DriverState.hs index d6ee6d025c..4b94d287e9 100644 --- a/ghc/compiler/main/DriverState.hs +++ b/ghc/compiler/main/DriverState.hs @@ -1,5 +1,5 @@ ----------------------------------------------------------------------------- --- $Id: DriverState.hs,v 1.13 2000/11/14 16:28:38 simonmar Exp $ +-- $Id: DriverState.hs,v 1.14 2000/11/16 11:39:37 simonmar Exp $ -- -- Settings for the driver -- @@ -439,56 +439,53 @@ addPackage package getPackageImportPath :: IO [String] getPackageImportPath = do - ps <- readIORef v_Packages - ps' <- getPackageDetails ps - return (nub (concat (map import_dirs ps'))) + ps <- getPackageInfo + return (nub (concat (map import_dirs ps))) getPackageIncludePath :: IO [String] getPackageIncludePath = do - ps <- readIORef v_Packages - ps' <- getPackageDetails ps - return (nub (filter (not.null) (concatMap include_dirs ps'))) + ps <- getPackageInfo + return (nub (filter (not.null) (concatMap include_dirs ps))) -- includes are in reverse dependency order (i.e. rts first) getPackageCIncludes :: IO [String] getPackageCIncludes = do - ps <- readIORef v_Packages - ps' <- getPackageDetails ps - return (reverse (nub (filter (not.null) (concatMap c_includes ps')))) + ps <- getPackageInfo + return (reverse (nub (filter (not.null) (concatMap c_includes ps)))) getPackageLibraryPath :: IO [String] getPackageLibraryPath = do - ps <- readIORef v_Packages - ps' <- getPackageDetails ps - return (nub (concat (map library_dirs ps'))) + ps <- getPackageInfo + return (nub (concat (map library_dirs ps))) getPackageLibraries :: IO [String] getPackageLibraries = do - ps <- readIORef v_Packages - ps' <- getPackageDetails ps + ps <- getPackageInfo tag <- readIORef v_Build_tag let suffix = if null tag then "" else '_':tag return (concat ( - map (\p -> map (++suffix) (hs_libraries p) ++ extra_libraries p) ps' + map (\p -> map (++suffix) (hs_libraries p) ++ extra_libraries p) ps )) getPackageExtraGhcOpts :: IO [String] getPackageExtraGhcOpts = do - ps <- readIORef v_Packages - ps' <- getPackageDetails ps - return (concatMap extra_ghc_opts ps') + ps <- getPackageInfo + return (concatMap extra_ghc_opts ps) getPackageExtraCcOpts :: IO [String] getPackageExtraCcOpts = do - ps <- readIORef v_Packages - ps' <- getPackageDetails ps - return (concatMap extra_cc_opts ps') + ps <- getPackageInfo + return (concatMap extra_cc_opts ps) getPackageExtraLdOpts :: IO [String] getPackageExtraLdOpts = do + ps <- getPackageInfo + return (concatMap extra_ld_opts ps) + +getPackageInfo :: IO [Package] +getPackageInfo = do ps <- readIORef v_Packages - ps' <- getPackageDetails ps - return (concatMap extra_ld_opts ps') + getPackageDetails ps getPackageDetails :: [String] -> IO [Package] getPackageDetails ps = do |