hiedb 0.4.1.0 → 0.4.2.0
raw patch · 5 files changed
+32/−7 lines, 5 filesdep ~basedep ~hie-compatPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: base, hie-compat
API changes (from Hackage documentation)
- HieDb.Compat: data Module
- HieDb.Types: instance Database.SQLite.Simple.FromField.FromField HieDb.Compat.Unit
- HieDb.Types: instance Database.SQLite.Simple.FromField.FromField Module.ModuleName
- HieDb.Types: instance Database.SQLite.Simple.FromField.FromField OccName.OccName
- HieDb.Types: instance Database.SQLite.Simple.FromRow.FromRow Module.ModuleName
- HieDb.Types: instance Database.SQLite.Simple.ToField.ToField HieDb.Compat.Unit
- HieDb.Types: instance Database.SQLite.Simple.ToField.ToField Module.ModuleName
- HieDb.Types: instance Database.SQLite.Simple.ToField.ToField OccName.OccName
+ HieDb.Compat: type Module = GenModule Unit
+ HieDb.Types: instance Database.SQLite.Simple.FromField.FromField GHC.Types.Name.Occurrence.OccName
+ HieDb.Types: instance Database.SQLite.Simple.FromField.FromField GHC.Unit.Module.Name.ModuleName
+ HieDb.Types: instance Database.SQLite.Simple.FromField.FromField GHC.Unit.Types.Unit
+ HieDb.Types: instance Database.SQLite.Simple.FromRow.FromRow GHC.Unit.Module.Name.ModuleName
+ HieDb.Types: instance Database.SQLite.Simple.ToField.ToField GHC.Types.Name.Occurrence.OccName
+ HieDb.Types: instance Database.SQLite.Simple.ToField.ToField GHC.Unit.Module.Name.ModuleName
+ HieDb.Types: instance Database.SQLite.Simple.ToField.ToField GHC.Unit.Types.Unit
- HieDb.Compat: RealSrcSpan :: !RealSrcSpan -> SrcSpan
+ HieDb.Compat: RealSrcSpan :: !RealSrcSpan -> !Maybe BufSpan -> SrcSpan
- HieDb.Compat: UnhelpfulSpan :: !FastString -> SrcSpan
+ HieDb.Compat: UnhelpfulSpan :: !UnhelpfulSpanReason -> SrcSpan
- HieDb.Compat: flLabel :: FieldLbl a -> FieldLabelString
+ HieDb.Compat: flLabel :: FieldLabel -> FieldLabelString
- HieDb.Compat: flSelector :: FieldLbl a -> a
+ HieDb.Compat: flSelector :: FieldLabel -> Name
- HieDb.Compat: mkModule :: UnitId -> ModuleName -> Module
+ HieDb.Compat: mkModule :: u -> ModuleName -> GenModule u
- HieDb.Compat: moduleName :: Module -> ModuleName
+ HieDb.Compat: moduleName :: GenModule unit -> ModuleName
- HieDb.Compat: moduleUnit :: Module -> Unit
+ HieDb.Compat: moduleUnit :: GenModule unit -> unit
- HieDb.Compat: type HiePath = FastString
+ HieDb.Compat: type HiePath = LexicalFastString
- HieDb.Compat: type Unit = UnitId
+ HieDb.Compat: type Unit = GenUnit UnitId
- HieDb.Compat: unhelpfulSpanFS :: FastString -> FastString
+ HieDb.Compat: unhelpfulSpanFS :: UnhelpfulSpanReason -> FastString
- HieDb.Compat: unitString :: Unit -> String
+ HieDb.Compat: unitString :: IsUnitId u => u -> String
Files
- CHANGELOG.md +4/−0
- hiedb.cabal +6/−6
- src/HieDb/Compat.hs +6/−0
- src/HieDb/Types.hs +5/−0
- src/HieDb/Utils.hs +11/−1
CHANGELOG.md view
@@ -1,5 +1,9 @@ # Revision history for hiedb +## 0.4.2.0 -- 2022-09-12++* Support GHC 9.4+ ## 0.4.1.0 -- 2021-06-29 * Support GHC 9.2 (@fendor)
hiedb.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.4 name: hiedb-version: 0.4.1.0+version: 0.4.2.0 synopsis: Generates a references DB from .hie files description: Tool and library to index and query a collection of `.hie` files bug-reports: https://github.com/wz1000/HieDb/issues@@ -26,7 +26,7 @@ common common-options default-language: Haskell2010- build-depends: base >= 4.12 && < 4.16+ build-depends: base >= 4.12 && < 4.18 ghc-options: -Wall -Wincomplete-uni-patterns -Wincomplete-record-updates@@ -62,15 +62,15 @@ , directory , mtl , sqlite-simple- , hie-compat+ , hie-compat ^>= 0.3 , text , bytestring- , algebraic-graphs+ , algebraic-graphs >= 0.3 && < 0.7 , lucid , optparse-applicative , extra- , ansi-terminal- , terminal-size+ , ansi-terminal >= 0.9+ , terminal-size >= 0.2 test-suite hiedb-tests import: common-options
src/HieDb/Compat.hs view
@@ -112,7 +112,9 @@ import Name import NameCache import Outputable (showSDoc, ppr, (<+>), hang, text)+#if __GLASGOW_HASKELL__ < 903 import IfaceEnv (NameCacheUpdater(..))+#endif import IfaceType import UniqSupply import SrcLoc@@ -194,4 +196,8 @@ #else -- pattern synonym that is never populated pattern AvailFL x <- Avail.Avail ((\_ -> (True, undefined)) -> (False, x))+#endif++#if __GLASGOW_HASKELL__ >= 903+type NameCacheUpdater = NameCache #endif
src/HieDb/Types.hs view
@@ -6,6 +6,7 @@ {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE CPP #-} {-# OPTIONS_GHC -Wno-orphans #-} module HieDb.Types where @@ -244,7 +245,11 @@ runDbM nc x = flip runReaderT nc $ runDbMonad x instance MonadIO m => NameCacheMonad (DbMonadT m) where+#if __GLASGOW_HASKELL__ >= 903+ getNcUpdater = DbMonadT $ ReaderT $ \ref -> liftIO $ readIORef ref+#else getNcUpdater = DbMonadT $ ReaderT $ \ref -> pure (NCU $ atomicModifyIORef' ref)+#endif data HieDbErr
src/HieDb/Utils.hs view
@@ -38,6 +38,7 @@ import HieDb.Types import HieDb.Compat import Database.SQLite.Simple+import Control.Concurrent addTypeRef :: HieDb -> FilePath -> A.Array TypeIndex HieTypeFlat -> A.Array TypeIndex (Maybe Int64) -> RealSrcSpan -> TypeIndex -> IO () addTypeRef (getConn -> conn) hf arr ixs sp = go 0@@ -75,8 +76,12 @@ makeNc :: IO NameCache makeNc = do+#if __GLASGOW_HASKELL__ >= 903+ initNameCache 'z' []+#else uniq_supply <- mkSplitUniqSupply 'z' return $ initNameCache uniq_supply []+#endif -- | Recursively search for @.hie@ and @.hie-boot@ files in given directory getHieFilesIn :: FilePath -> IO [FilePath]@@ -109,7 +114,12 @@ ncr <- newIORef =<< makeNc _ <- runDbM ncr $ withHieFile file (const $ return ()) nc <- readIORef ncr- return $ case lookupOrigNameCache (nsNames nc) mdl occ of+#if __GLASGOW_HASKELL__ >= 903+ nsns <- readMVar (nsNames nc)+#else+ let nsns = nsNames nc+#endif+ return $ case lookupOrigNameCache nsns mdl occ of Just name -> case nameSrcSpan name of #if __GLASGOW_HASKELL__ >= 900 RealSrcSpan sp _ -> Right (sp, mdl)