[Pkg-haskell-commits] darcs: haskell-leksah-server: Patch out use of attoparsec-conduit

Joachim Breitner mail at joachim-breitner.de
Mon Apr 6 19:15:15 UTC 2015


Sun Dec 21 11:23:04 UTC 2014  Joachim Breitner <mail at joachim-breitner.de>
  * Patch out use of attoparsec-conduit

    M ./control -3
    R ./patches/ghc-7.6-compatibility.patch
    A ./patches/no-attoparsec-conduit
    M ./patches/series -1 +1

Sun Dec 21 11:23:04 UTC 2014  Joachim Breitner <mail at joachim-breitner.de>
  * Patch out use of attoparsec-conduit
diff -rN -u old-haskell-leksah-server/control new-haskell-leksah-server/control
--- old-haskell-leksah-server/control	2015-04-06 19:15:15.776080168 +0000
+++ new-haskell-leksah-server/control	2015-04-06 19:15:15.780080168 +0000
@@ -24,8 +24,6 @@
   , libghc-resourcet-dev
   , libghc-enumerator-dev (>= 0.4.14)
   , libghc-enumerator-dev (<< 0.5)
-  , libghc-attoparsec-conduit-dev (>= 1.0.1.2)
-  , libghc-attoparsec-conduit-dev (<< 1.2)
   , libghc-attoparsec-dev (>= 0.10.0.3)
   , libghc-attoparsec-dev (<< 0.13)
   , libghc-strict-dev (>= 0.3.2)
@@ -49,7 +47,6 @@
   , libghc-haddock-doc
   , libghc-enumerator-doc
   , libghc-attoparsec-doc
-  , libghc-attoparsec-conduit-doc
   , libghc-hslogger-doc
   , libghc-strict-doc
   , libghc-text-doc
diff -rN -u old-haskell-leksah-server/patches/ghc-7.6-compatibility.patch new-haskell-leksah-server/patches/ghc-7.6-compatibility.patch
--- old-haskell-leksah-server/patches/ghc-7.6-compatibility.patch	2015-04-06 19:15:15.776080168 +0000
+++ new-haskell-leksah-server/patches/ghc-7.6-compatibility.patch	1970-01-01 00:00:00.000000000 +0000
@@ -1,1846 +0,0 @@
-From dc892c956ce07b3386778fc1fe7597adb9f8505b Mon Sep 17 00:00:00 2001
-From: Hamish Mackenzie <Hamish.K.Mackenzie at googlemail.com>
-Date: Wed, 10 Oct 2012 17:24:49 +1300
-Subject: [PATCH] GHC 7.6 fixes (Iain Lane: slightly modified for Debian)
-
----
- leksah-server.cabal                    |  44 +++---
- src/IDE/Core/CTypes.hs                 |   2 +
- src/IDE/HeaderParser.hs                |  50 +++---
- src/IDE/Metainfo/InterfaceCollector.hs | 122 +++++++++------
- src/IDE/Metainfo/PackageCollector.hs   |  13 +-
- src/IDE/Metainfo/SourceCollectorH.hs   | 271 ++++++++++++++++++++-------------
- src/IDE/Metainfo/WorkspaceCollector.hs | 228 +++++++++++++++++----------
- src/IDE/Utils/FileUtils.hs             |  41 ++---
- src/IDE/Utils/GHCUtils.hs              |  38 ++++-
- src/IDE/Utils/Server.hs                |   9 +-
- src/IDE/Utils/VersionUtils.hs          |   9 +-
- 11 files changed, 519 insertions(+), 308 deletions(-)
-
-Index: b/leksah-server.cabal
-===================================================================
---- a/leksah-server.cabal
-+++ b/leksah-server.cabal
-@@ -32,22 +32,25 @@
- 
- library
-     default-language: Haskell98
--    build-depends: Cabal >=1.6.0.1 && <1.15, base >= 4.0.0.0 && <4.6, binary >=0.5.0.0 && <0.6,
--               binary-shared >=0.8 && <0.9, bytestring >=0.9.0.1 && <0.10,
--               containers >=0.2.0.0 && <0.5,
--               directory >=1.0.0.2 && <1.2, filepath >=1.1.0.1 && <1.4, ghc >=6.10.1 && <7.5,
-+    build-depends: Cabal >=1.6.0.1 && <1.17, base >= 4.0.0.0 && <4.7, binary >=0.5.0.0 && <0.6,
-+               binary-shared >=0.8 && <0.9, bytestring >=0.9.0.1 && <0.11,
-+               containers >=0.2.0.0 && <0.6,
-+               directory >=1.0.0.2 && <1.3, filepath >=1.1.0.1 && <1.4, ghc >=6.10.1 && <7.7,
-                ltk >=0.12.1.0 && <0.13, parsec >=2.1.0.1 && <3.2,
-                pretty >=1.0.1.0 && <1.2, time >=1.1 && <1.5, deepseq >=1.1 && <1.4,
--               hslogger >= 1.0.7 && <1.2, network >=2.2 && <3.0, enumerator >=0.4.14 && < 0.5,
-+               hslogger >= 1.0.7 && <1.3, network >=2.2 && <3.0, enumerator >=0.4.14 && < 0.5,
-                attoparsec-enumerator >=0.3 && <0.4, attoparsec >=0.10.0.3 && <0.11,
-                transformers >=0.2.2.0 && <0.4, strict >=0.3.2 && <0.4
- 
-     if (impl(ghc >= 7.2))
-         binary-shared >=0.8.2
- 
--    if (impl(ghc >= 7.4))
--       build-depends: haddock >= 2.7.2 && <2.11
-+    if (impl(ghc >= 7.6))
-+       build-depends: haddock >= 2.7.2 && <2.14
-     else
-+     if (impl(ghc >= 7.4))
-+        build-depends: haddock >= 2.7.2 && <2.11
-+     else
-        if (impl(ghc >= 7.2))
-           build-depends: haddock >= 2.7.2 && <2.10
-        else
-@@ -68,7 +71,7 @@
-         build-depends: Win32 >=2.2.0.0 && <2.3
-         extra-libraries: kernel32  pango-1.0 glib-2.0
-     else
--        build-depends: unix >=2.3.1.0 && <2.6
-+        build-depends: unix >=2.3.1.0 && <2.7
- 
-     if flag(curl) || os(osx)
-         cpp-options: -DUSE_CURL
-@@ -96,18 +99,21 @@
- 
- executable leksah-server
-     default-language: Haskell98
--    build-depends: Cabal >=1.6.0.1 && <1.15, base >= 4.0.0.0 && <4.6, binary >=0.5.0.0 && <0.6,
--               binary-shared >=0.8 && <0.9, bytestring >=0.9.0.1 && <0.10,
--               containers >=0.2.0.0 && <0.5,
--               directory >=1.0.0.2 && <1.2, filepath >=1.1.0.1 && <1.6, ghc >=6.10.1 && <7.5,
-+    build-depends: Cabal >=1.6.0.1 && <1.17, base >= 4.0.0.0 && <4.7, binary >=0.5.0.0 && <0.6,
-+               binary-shared >=0.8 && <0.9, bytestring >=0.9.0.1 && <0.11,
-+               containers >=0.2.0.0 && <0.6,
-+               directory >=1.0.0.2 && <1.3, filepath >=1.1.0.1 && <1.6, ghc >=6.10.1 && <7.7,
-                ltk >=0.12.1.0 && <0.13, parsec >=2.1.0.1 && <3.2,
-                pretty >=1.0.1.0 && <1.2, time >=1.1 && <1.5, deepseq >=1.1 && <1.4,
--               hslogger >= 1.0.7 && <1.2, network >=2.2 && <3.0, enumerator >= 0.4.14 && <0.5,
-+               hslogger >= 1.0.7 && <1.3, network >=2.2 && <3.0, enumerator >= 0.4.14 && <0.5,
-                attoparsec-enumerator >=0.3 && <0.4, attoparsec >=0.10.0.3 && <0.11,
-                transformers >=0.2.2.0 && <0.4, strict >=0.3.2 && <0.4
--    if (impl(ghc >= 7.4))
--       build-depends: haddock >= 2.7.2 && <2.11
-+    if (impl(ghc >= 7.6))
-+       build-depends: haddock >= 2.7.2 && <2.14
-     else
-+     if (impl(ghc >= 7.4))
-+        build-depends: haddock >= 2.7.2 && <2.11
-+     else
-        if (impl(ghc >= 7.2))
-           build-depends: haddock >= 2.7.2 && <2.10
-        else
-@@ -128,7 +134,7 @@
-         build-depends: Win32 >=2.2.0.0 && <2.3
-         extra-libraries: kernel32 pango-1.0 glib-2.0
-     else
--        build-depends: unix >=2.3.1.0 && <2.6
-+        build-depends: unix >=2.3.1.0 && <2.7
- 
-     if flag(curl) || os(osx)
-         cpp-options: -DUSE_CURL
-@@ -167,8 +173,8 @@
-     hs-source-dirs: src
-     ghc-prof-options: -auto-all -prof
- --    ghc-shared-options: -auto-all -prof
--    build-depends:  base >= 4.0.0.0 && <4.6, hslogger >= 1.0.7 && <1.2, deepseq >=1.1 && <1.4,
--               bytestring >=0.9.0.1 && <0.10, enumerator >= 0.4.14 && <0.5,
-+    build-depends:  base >= 4.0.0.0 && <4.7, hslogger >= 1.0.7 && <1.3, deepseq >=1.1 && <1.4,
-+               bytestring >=0.9.0.1 && <0.11, enumerator >= 0.4.14 && <0.5,
-                attoparsec-enumerator >=0.3 && <0.4, attoparsec >=0.10.0.3 && <0.11,
-                transformers >=0.2.2.0 && <0.4
- 
-@@ -190,7 +196,7 @@
-     type:       exitcode-stdio-1.0
-     hs-source-dirs: tests
-     main-is:    TestTool.hs
--    build-depends: base >= 4.0.0.0 && <4.6,  hslogger >= 1.0.7 && <1.3,
-+    build-depends: base >= 4.0.0.0 && <4.7,  hslogger >= 1.0.7 && <1.3,
-                leksah-server,
-                HUnit >=1.2 && <1.3, transformers >=0.2.2.0 && <0.4, enumerator >=0.4.14 && <0.5
- 
-Index: b/src/IDE/Core/CTypes.hs
-===================================================================
---- a/src/IDE/Core/CTypes.hs
-+++ b/src/IDE/Core/CTypes.hs
-@@ -542,7 +542,9 @@
- 
- instance NFData DescrType where  rnf a = seq a ()
- 
-+#if !MIN_VERSION_bytestring(0,10,0)
- instance NFData BS.ByteString where  rnf b = seq b ()
-+#endif
- 
- #if !MIN_VERSION_deepseq(1,3,0)
- instance NFData Version where  rnf v = seq v ()
-Index: b/src/IDE/HeaderParser.hs
-===================================================================
---- a/src/IDE/HeaderParser.hs
-+++ b/src/IDE/HeaderParser.hs
-@@ -21,17 +21,31 @@
- import IDE.Core.CTypes hiding(SrcSpan(..))
- import GHC hiding (ImportDecl)
- import FastString(unpackFS)
--import RdrName(showRdrName)
- import IDE.Utils.GHCUtils
- import Data.Maybe (mapMaybe)
- #if MIN_VERSION_ghc(7,4,1)
--import Outputable(pprPrefixOcc,showSDoc)
-+import Outputable(pprPrefixOcc, ppr)
- #else
--import Outputable(pprHsVar,showSDoc)
-+import Outputable(pprHsVar, ppr)
-+#endif
-+#if MIN_VERSION_ghc(7,6,0)
-+import Outputable(showSDoc)
-+#else
-+import qualified Outputable as O
- #endif
- import IDE.Utils.FileUtils (figureOutHaddockOpts)
- import Control.Monad.IO.Class (MonadIO(..))
- 
-+#if !MIN_VERSION_ghc(7,6,0)
-+showSDoc :: DynFlags -> O.SDoc -> String
-+showSDoc _ = O.showSDoc
-+showSDocUnqual :: DynFlags -> O.SDoc -> String
-+showSDocUnqual _ = O.showSDocUnqual
-+#endif
-+
-+showRdrName :: DynFlags -> RdrName -> String
-+showRdrName dflags r = showSDoc dflags (ppr r)
-+
- parseTheHeader :: FilePath -> IO ServerAnswer
- parseTheHeader filePath = do
-     text        <- readFile filePath
-@@ -39,7 +53,7 @@
-     parseResult <- liftIO $ myParseHeader filePath text opts
-     case parseResult of
-         Left str                                      -> return (ServerFailed str)
--        Right (pr at HsModule{ hsmodImports = []})       -> do
-+        Right (_, pr at HsModule{ hsmodImports = []})       -> do
-             let i = case hsmodDecls pr of
-                         decls@(_hd:_tl) -> (foldl (\ a b -> min a (srcSpanStartLine' (getLoc b))) 0 decls) - 1
-                         [] -> case hsmodExports pr of
-@@ -48,13 +62,13 @@
-                                         Nothing -> 0
-                                         Just mn -> srcSpanEndLine' (getLoc mn) + 2
-             return (ServerHeader (Right i))
--        Right (_pr at HsModule{ hsmodImports = imports }) -> return (ServerHeader (Left (transformImports imports)))
-+        Right (dflags, _pr at HsModule{ hsmodImports = imports }) -> return (ServerHeader (Left (transformImports dflags imports)))
- 
--transformImports :: [LImportDecl RdrName] -> [ImportDecl]
--transformImports = map transformImport
-+transformImports :: DynFlags -> [LImportDecl RdrName] -> [ImportDecl]
-+transformImports dflags = map (transformImport dflags)
- 
--transformImport ::  LImportDecl RdrName -> ImportDecl
--transformImport (L srcSpan importDecl) =
-+transformImport :: DynFlags -> LImportDecl RdrName -> ImportDecl
-+transformImport dflags (L srcSpan importDecl) =
-     ImportDecl {
-         importLoc = srcSpanToLocation srcSpan,
-         importModule = modName,
-@@ -73,19 +87,19 @@
-                         Just mn -> Just (moduleNameString mn)
-         specs =    case ideclHiding importDecl of
-                         Nothing -> Nothing
--                        Just (hide, list) -> Just (ImportSpecList hide (mapMaybe transformEntity list))
-+                        Just (hide, list) -> Just (ImportSpecList hide (mapMaybe (transformEntity dflags) list))
- 
--transformEntity :: LIE RdrName -> Maybe ImportSpec
-+transformEntity :: DynFlags -> LIE RdrName -> Maybe ImportSpec
- #if MIN_VERSION_ghc(7,2,0)
--transformEntity (L _ (IEVar name))              = Just (IVar (showSDoc (pprPrefixOcc name)))
-+transformEntity dflags (L _ (IEVar name))              = Just (IVar (showSDoc dflags (pprPrefixOcc name)))
- #else
--transformEntity (L _ (IEVar name))              = Just (IVar (showSDoc (pprHsVar name)))
-+transformEntity dflags (L _ (IEVar name))              = Just (IVar (showSDoc dflags (pprHsVar name)))
- #endif
--transformEntity (L _ (IEThingAbs name))         = Just (IAbs (showRdrName name))
--transformEntity (L _ (IEThingAll name))         = Just (IThingAll (showRdrName name))	
--transformEntity (L _ (IEThingWith name list))   = Just (IThingWith (showRdrName name)
--                                                        (map showRdrName list))	
--transformEntity  _                              = Nothing
-+transformEntity dflags (L _ (IEThingAbs name))         = Just (IAbs (showRdrName dflags name))
-+transformEntity dflags (L _ (IEThingAll name))         = Just (IThingAll (showRdrName dflags name))	
-+transformEntity dflags (L _ (IEThingWith name list))   = Just (IThingWith (showRdrName dflags name)
-+                                                        (map (showRdrName dflags) list))	
-+transformEntity _ _                              = Nothing
- 
- #if MIN_VERSION_ghc(7,2,0)
- srcSpanToLocation :: SrcSpan -> Location
-Index: b/src/IDE/Metainfo/InterfaceCollector.hs
-===================================================================
---- a/src/IDE/Metainfo/InterfaceCollector.hs
-+++ b/src/IDE/Metainfo/InterfaceCollector.hs
-@@ -23,6 +23,7 @@
- import Module hiding (PackageId,ModuleName)
- import qualified Module as Module (ModuleName)
- import qualified Maybes as M
-+import DynFlags (DynFlags)
- #if MIN_VERSION_ghc(7,2,0)
- import HscTypes
- import GhcMonad hiding (liftIO)
-@@ -36,7 +37,12 @@
- import TysWiredIn ( eqTyConName )
- #endif
- import LoadIface
-+#if MIN_VERSION_ghc(7,6,0)
- import Outputable hiding(trace)
-+#else
-+import Outputable hiding(trace, showSDoc, showSDocUnqual)
-+import qualified Outputable as O
-+#endif
- import IfaceSyn
- import FastString
- import Name
-@@ -65,15 +71,21 @@
- import IDE.Utils.GHCUtils
- import Control.DeepSeq(deepseq)
- 
-+#if !MIN_VERSION_ghc(7,6,0)
-+showSDoc :: DynFlags -> SDoc -> String
-+showSDoc _ = O.showSDoc
-+showSDocUnqual :: DynFlags -> SDoc -> String
-+showSDocUnqual _ = O.showSDocUnqual
-+#endif
- 
- collectPackageFromHI :: PackageConfig -> IO PackageDescr
--collectPackageFromHI  packageConfig = inGhcIO [] [] $ \ _ -> do
-+collectPackageFromHI  packageConfig = inGhcIO [] [] $ \ dflags -> do
-     session             <-  getSession
-     exportedIfaceInfos  <-  getIFaceInfos (getThisPackage packageConfig)
-                                             (IPI.exposedModules packageConfig) session
-     hiddenIfaceInfos    <-  getIFaceInfos (getThisPackage packageConfig)
-                                             (IPI.hiddenModules packageConfig) session
--    let pd = extractInfo exportedIfaceInfos hiddenIfaceInfos (getThisPackage packageConfig)
-+    let pd = extractInfo dflags exportedIfaceInfos hiddenIfaceInfos (getThisPackage packageConfig)
- #if MIN_VERSION_Cabal(1,8,0)
-                                             [] -- TODO 6.12 (IPI.depends $ packageConfigToInstalledPackageInfo packageConfig))
- #else
-@@ -101,20 +113,20 @@
- 
- -------------------------------------------------------------------------
- 
--extractInfo :: [(ModIface, FilePath)] -> [(ModIface, FilePath)] -> PackageIdentifier ->
-+extractInfo :: DynFlags -> [(ModIface, FilePath)] -> [(ModIface, FilePath)] -> PackageIdentifier ->
-                     [PackageIdentifier] -> PackageDescr
--extractInfo  ifacesExp ifacesHid pid buildDepends =
--    let allDescrs           =   concatMap (extractExportedDescrH pid)
-+extractInfo dflags ifacesExp ifacesHid pid buildDepends =
-+    let allDescrs           =   concatMap (extractExportedDescrH dflags pid)
-                                     (map fst (ifacesHid ++ ifacesExp))
--        mods                =   map (extractExportedDescrR pid allDescrs) (map fst ifacesExp)
-+        mods                =   map (extractExportedDescrR dflags pid allDescrs) (map fst ifacesExp)
-     in PackageDescr {
-         pdPackage           =   pid
-     ,   pdModules           =   mods
-     ,   pdBuildDepends      =   buildDepends
-     ,   pdMbSourcePath      =   Nothing}
- 
--extractExportedDescrH :: PackageIdentifier -> ModIface -> [Descr]
--extractExportedDescrH pid iface =
-+extractExportedDescrH :: DynFlags -> PackageIdentifier -> ModIface -> [Descr]
-+extractExportedDescrH dflags pid iface =
-     let mid                 =   (fromJust . simpleParse . moduleNameString . moduleName) (mi_module iface)
-         exportedNames       =   Set.fromList
- #if MIN_VERSION_Cabal(1,11,0)
-@@ -129,14 +141,15 @@
-         exportedDecls       =   filter (\ ifdecl -> (occNameString $ ifName ifdecl)
-                                                     `Set.member` exportedNames)
-                                                             (map snd (mi_decls iface))
--    in  concatMap (extractIdentifierDescr pid [mid]) exportedDecls
-+    in  concatMap (extractIdentifierDescr dflags pid [mid]) exportedDecls
- 
- 
--extractExportedDescrR :: PackageIdentifier
-+extractExportedDescrR :: DynFlags
-+    -> PackageIdentifier
-     -> [Descr]
-     -> ModIface
-     -> ModuleDescr
--extractExportedDescrR pid hidden iface =
-+extractExportedDescrR dflags pid hidden iface =
-     let mid             =   (fromJust . simpleParse . moduleNameString . moduleName) (mi_module iface)
-         exportedNames   =   Set.fromList
- #if MIN_VERSION_Cabal(1,11,0)
-@@ -151,12 +164,12 @@
-         exportedDecls   =   filter (\ ifdecl -> (occNameString $ifName ifdecl)
-                                                     `Set.member` exportedNames)
-                                                             (map snd (mi_decls iface))
--        ownDecls        =   concatMap (extractIdentifierDescr pid [mid]) exportedDecls
-+        ownDecls        =   concatMap (extractIdentifierDescr dflags pid [mid]) exportedDecls
-         otherDecls      =   exportedNames `Set.difference` (Set.fromList (map dscName ownDecls))
-         reexported      =   map (\d -> Reexported (ReexportedDescr (Just (PM pid mid)) d))
-                                  $ filter (\k -> (dscName k) `Set.member` otherDecls) hidden
--        inst            =   concatMap (extractInstances (PM pid mid)) (mi_insts iface)
--        uses            =   Map.fromList . catMaybes $ map extractUsages (mi_usages iface)
-+        inst            =   concatMap (extractInstances dflags (PM pid mid)) (mi_insts iface)
-+        uses            =   Map.fromList . catMaybes $ map (extractUsages dflags) (mi_usages iface)
-         declsWithExp    =   map withExp ownDecls
-         withExp (Real d) =  Real $ d{dscExported' = Set.member (dscName' d) exportedNames}
-         withExp _        =  error "Unexpected Reexported"
-@@ -166,14 +179,14 @@
-                 ,   mdReferences        =   uses
-                 ,   mdIdDescriptions    =   declsWithExp ++ inst ++ reexported}
- 
--extractIdentifierDescr :: PackageIdentifier -> [ModuleName] -> IfaceDecl -> [Descr]
--extractIdentifierDescr package modules decl
-+extractIdentifierDescr :: DynFlags -> PackageIdentifier -> [ModuleName] -> IfaceDecl -> [Descr]
-+extractIdentifierDescr dflags package modules decl
-    = if null modules
-       then []
-       else
-         let descr = RealDescr{
-                     dscName'           =   unpackFS $occNameFS (ifName decl)
--                ,   dscMbTypeStr'      =   Just (BS.pack $ unlines $ nonEmptyLines $ filterExtras $ showSDocUnqual $ppr decl)
-+                ,   dscMbTypeStr'      =   Just (BS.pack $ unlines $ nonEmptyLines $ filterExtras $ showSDocUnqual dflags $ppr decl)
-                 ,   dscMbModu'         =   Just (PM package (last modules))
-                 ,   dscMbLocation'     =   Nothing
-                 ,   dscMbComment'      =   Nothing
-@@ -188,20 +201,20 @@
- #endif
-                 -> map Real [descr]
- #if MIN_VERSION_Cabal(1,11,0)
--            (IfaceData name _ _ ifCons' _ _ _)
-+            (IfaceData {ifName=name, ifCons=ifCons'})
- #else
-             (IfaceData name _ _ ifCons' _ _ _ _)
- #endif
-                 -> let d = case ifCons' of
-                             IfDataTyCon _decls
-                                 ->  let
--                                        fieldNames          =   concatMap extractFields (visibleIfConDecls ifCons')
--                                        constructors'       =   extractConstructors name (visibleIfConDecls ifCons')
-+                                        fieldNames          =   concatMap (extractFields dflags) (visibleIfConDecls ifCons')
-+                                        constructors'       =   extractConstructors dflags name (visibleIfConDecls ifCons')
-                                     in DataDescr constructors' fieldNames
-                             IfNewTyCon _
-      [...incomplete...]



More information about the Pkg-haskell-commits mailing list