[Pkg-haskell-maintainers] Bug#571354: Package plugins and GHC 6.12

Don Stewart dons at galois.com
Sat Mar 13 22:10:19 UTC 2010


hs-plugins is unmaintained. I'd recommend removing it from debian.

mascellani:
> Hi.
> 
> I wrote this mail to you some time ago, but never got a reply. I don't
> want to bother you, but I'm resending it just in case the previous copy
> had got lost.
> 
> I'm a member of the Debian Haskell Team. We recently migrated to GHC
> 6.12, but you're package seems not to be compilable with GHC 6.12 (the
> same happens also on hackage). Hackage failure log is here: [1].
> 
>  [1]
> http://hackage.haskell.org/packages/archive/plugins/1.4.1/logs/failure/ghc-6.12
> 
> I've created a patch (attached) which should fix some of the problems.
> Anyway, now I'm facing two errors I'm not able to deal with:
> 
> > [11 of 15] Compiling System.Plugins.Load ( src/System/Plugins/Load.hs, dist-ghc6/build/System/Plugins/Load.o )
> > 
> > src/System/Plugins/Load.hs:98:4:
> >     Couldn't match expected type `IO ModIface'
> >            against inferred type `DynFlags.DynFlags -> b'
> >     In a stmt of a 'do' expression: e <- newHscEnv undefined
> >     In the expression:
> >         do { e <- newHscEnv undefined;
> >              initTcRnIf
> >                'r'
> >                e
> >                undefined
> >                undefined
> >                (readBinIface IgnoreHiWay QuietBinIFaceReading hi_path) }
> >     In the definition of `readBinIface'':
> >         readBinIface' hi_path
> >                         = do { e <- newHscEnv undefined;
> >                                initTcRnIf
> >                                  'r'
> >                                  e
> >                                  undefined
> >                                  undefined
> >                                  (readBinIface IgnoreHiWay QuietBinIFaceReading hi_path) }
> > 
> > src/System/Plugins/Load.hs:441:13:
> >     A lazy (~) pattern cannot contain unlifted types ~(Ptr addr)
> >     In the pattern: ~(Ptr addr)
> >     In a stmt of a 'do' expression:
> >         (ptr@(~(Ptr addr))) <- withCString symbol c_lookupSymbol
> >     In the expression:
> >         do { let symbol = prefixUnderscore
> >                         ++  (maybe "" (\ p -> ...) pkg)
> >                           ++  encode m ++ "_" ++ (encode valsym) ++ "_closure";
> >              (ptr@(~(Ptr addr))) <- withCString symbol c_lookupSymbol;
> >              if (ptr == nullPtr) then
> >                  return Nothing
> >              else
> >                  case addrToHValue# addr of { (# hval #) -> return (Just hval) } }
> 
> Do you have any advices for me?
> 
> I hope the attached patch can be helpful for you. :-)
> 
> Thanks, Giovanni.
> -- 
> Giovanni Mascellani <mascellani at poisson.phc.unipi.it>
> Pisa, Italy
> 
> Web: http://poisson.phc.unipi.it/~mascellani
> Jabber: g.mascellani at jabber.org / giovanni at elabor.homelinux.org
> 

> diff -Nur -x '*.orig' -x '*~' hs-plugins-1.4.1//src/System/MkTemp.hs hs-plugins-1.4.1.new//src/System/MkTemp.hs
> --- hs-plugins-1.4.1//src/System/MkTemp.hs	2009-03-15 21:14:39.000000000 +0100
> +++ hs-plugins-1.4.1.new//src/System/MkTemp.hs	2010-02-21 02:11:20.000000000 +0100
> @@ -214,7 +214,7 @@
>          if b then ioError err   -- race
>               else openFile f ReadWriteMode
>      where
> -        err = IOError Nothing AlreadyExists "open0600" "already exists" Nothing
> +        err = IOError Nothing AlreadyExists "open0600" "already exists" Nothing (Just f)
>  
>  {-
>  -- open(path, O_CREAT|O_EXCL|O_RDWR, 0600)
> diff -Nur -x '*.orig' -x '*~' hs-plugins-1.4.1//src/System/Plugins/Env.hs hs-plugins-1.4.1.new//src/System/Plugins/Env.hs
> --- hs-plugins-1.4.1//src/System/Plugins/Env.hs	2009-03-15 21:14:39.000000000 +0100
> +++ hs-plugins-1.4.1.new//src/System/Plugins/Env.hs	2010-02-21 02:11:08.000000000 +0100
> @@ -287,9 +287,9 @@
>  union :: PkgEnvs -> [PackageConfig] -> PkgEnvs
>  union ls ps' = 
>          let fm = emptyFM -- new FM for this package.conf
> -        in foldr (\p fm' -> if (display $ package p) == "base" -- ghc doesn't supply a version with 'base'
> +        in foldr (\p fm' -> if (display $ sourcePackageId p) == "base" -- ghc doesn't supply a version with 'base'
>                                                         -- for some reason.
> -                            then addToFM (addToFM fm' (display $ package p) p) (packageName p) p
> +                            then addToFM (addToFM fm' (display $ sourcePackageId p) p) (packageName p) p
>                              else addToFM fm' (packageName p) p) fm ps' : ls
>  
>  -- 
> @@ -312,7 +312,7 @@
>  readPackageConf :: FilePath -> IO [PackageConfig]
>  readPackageConf f = do
>      pc <- configureAllKnownPrograms silent defaultProgramConfiguration
> -    pkgIndex <- getInstalledPackages silent (SpecificPackageDB f) pc
> +    pkgIndex <- getInstalledPackages silent [(SpecificPackageDB f)] pc
>      return $ allPackages pkgIndex
>  
>  -- -----------------------------------------------------------
> diff -Nur -x '*.orig' -x '*~' hs-plugins-1.4.1//src/System/Plugins/PackageAPI.hs hs-plugins-1.4.1.new//src/System/Plugins/PackageAPI.hs
> --- hs-plugins-1.4.1//src/System/Plugins/PackageAPI.hs	2009-03-15 21:14:39.000000000 +0100
> +++ hs-plugins-1.4.1.new//src/System/Plugins/PackageAPI.hs	2010-02-21 02:12:20.000000000 +0100
> @@ -58,8 +58,8 @@
>  
>  type PackageConfig = InstalledPackageInfo
>  
> -packageName = display . package
> -packageName_ = pkgName . package
> +packageName = display . sourcePackageId
> +packageName_ = pkgName . sourcePackageId
>  packageDeps = (map display) . depends
>  
>  updImportDirs f pk@(InstalledPackageInfo { importDirs = idirs }) =
> 








More information about the Pkg-haskell-maintainers mailing list